I have an INSERT SELECT statement that only works when the select_list is in a specific order.This works:INSERT INTO product_colour_size SELECT DISTINCT p.ina_prod_id, pc.vendor_colour_ID, ps.vendor_size_ID, 1 AS avail_ind FROM product_style p INNER JOIN product_size ps ON p.ina_prod_id = ps.ina_prod_id INNER JOIN product_colour pc ON p.ina_prod_id = pc.ina_prod_id
This produces a foreign key error:INSERT INTO product_colour_size SELECT DISTINCT p.ina_prod_id, ps.vendor_size_ID, pc.vendor_colour_ID, 1 AS avail_ind FROM product_style p INNER JOIN product_size ps ON p.ina_prod_id = ps.ina_prod_id INNER JOIN product_colour pc ON p.ina_prod_id = pc.ina_prod_id
INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_product_colour_size_vendor_size'. The conflict occurred in database 'INA', table 'vendor_size', column 'vendor_size_ID'.The statement has been terminated.
Here is the SQL Script for the tables including foreign keys:CREATE TABLE [dbo].[vendor_colour] ( [vendor_colour_ID] [int] IDENTITY (1, 1) NOT NULL , [nrf_colour_ID] [int] NULL , [vendor_no] [int] NOT NULL , [description] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GOALTER TABLE [dbo].[vendor_colour] WITH NOCHECK ADD CONSTRAINT [PK_vendor_colour] PRIMARY KEY CLUSTERED ( [vendor_colour_ID] ) ON [PRIMARY] GOALTER TABLE [dbo].[vendor_colour] ADD CONSTRAINT [FK_vendor_colour_colour] FOREIGN KEY ( [nrf_colour_ID] ) REFERENCES [dbo].[nrf_colour] ( [nrf_colour_ID] ) NOT FOR REPLICATION , CONSTRAINT [FK_vendor_colour_vendor] FOREIGN KEY ( [vendor_no] ) REFERENCES [dbo].[vendor] ( [vendor_no] ) NOT FOR REPLICATION GOCREATE TABLE [dbo].[vendor_size] ( [vendor_size_ID] [int] IDENTITY (1, 1) NOT NULL , [size_ID] [int] NULL , [vendor_no] [int] NOT NULL ) ON [PRIMARY]GOALTER TABLE [dbo].[vendor_size] WITH NOCHECK ADD CONSTRAINT [PK_vendor_size] PRIMARY KEY CLUSTERED ( [vendor_size_ID] ) ON [PRIMARY] GOALTER TABLE [dbo].[vendor_size] ADD CONSTRAINT [FK_vendor_size_size] FOREIGN KEY ( [size_ID] ) REFERENCES [dbo].[size] ( [size_ID] ) NOT FOR REPLICATION , CONSTRAINT [FK_vendor_size_vendor] FOREIGN KEY ( [vendor_no] ) REFERENCES [dbo].[vendor] ( [vendor_no] ) NOT FOR REPLICATION GOCREATE TABLE [dbo].[product_colour_size] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [ina_prod_id] [int] NOT NULL , [vendor_colour_ID] [int] NOT NULL , [vendor_size_ID] [int] NOT NULL , [avail_ind] [bit] NOT NULL ) ON [PRIMARY]GOALTER TABLE [dbo].[product_colour_size] WITH NOCHECK ADD CONSTRAINT [PK_product_colour_size] PRIMARY KEY CLUSTERED ( [ID] ) ON [PRIMARY] GOALTER TABLE [dbo].[product_colour_size] WITH NOCHECK ADD CONSTRAINT [DF_product_colour_size_avail_ind] DEFAULT (1) FOR [avail_ind]GOALTER TABLE [dbo].[product_colour_size] ADD CONSTRAINT [FK_product_colour_size_product_style] FOREIGN KEY ( [ina_prod_id] ) REFERENCES [dbo].[product_style] ( [ina_prod_id] ) NOT FOR REPLICATION , CONSTRAINT [FK_product_colour_size_vendor_size] FOREIGN KEY ( [vendor_size_ID] ) REFERENCES [dbo].[vendor_size] ( [vendor_size_ID] ) NOT FOR REPLICATION GO
The table product_style is the main product table. The primary key is ina_prod_id. The script is too long to show just for that bit of info.Would someone be able to tell me why the INSERT crashes if it's not in the specific order?Thanks,Ursula