我有两个表table1和table2。我在table1中有记录。我想将记录插入table2。但它提出了以下例外。
Msg 547, Level 16, State 0, Line 2
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Table2_<Column3>". The conflict occurred in database "<databaseName>", table "table1", column 'Id'.
table2上的约束就是这样。
ALTER TABLE [dbo].[table2] ADD CONSTRAINT [DF__table2__name__0B91BA14] DEFAULT ((0)) FOR [column4]
答案 0 :(得分:2)
错误显示您还有一个外键约束,并且您试图将一行插入到主表中没有相应记录的子表中
答案 1 :(得分:1)
异常消息告诉您哪个约束导致了该问题。它反对Column3(至少就是名字所暗示的)并且是对table1的外键约束。
您没有显示任何示例SQL,但看起来您正试图将数据插入到table2中,其中table3中不存在为Column3指定的外键值。
答案 2 :(得分:0)
你的评论帮助了我。
我使用此查询将数据从旧数据库插入新数据库。
INSERT INTO Database.[dbo].[Table2] ([colmn1]
,[colmn2]
,[colmn3]
,[columns4]
)
SELECT [colmn1]
,[colmn2]
,[colmn3]
,[columns4]
FROM [OtherDatabase].[dbo].[Table2]
但是colum3上有一个constarint,它是Table1上的外键。
我已将table1的colmn3更改为与其他数据库Guid相同的Guid,并且可以正常工作。
全部谢谢