SQL约束 - 插入失败

时间:2011-09-19 15:53:06

标签: sql-server

我有两个表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]

3 个答案:

答案 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,并且可以正常工作。

全部谢谢