我得到以下错误。你能帮帮我吗?

信号547,16级,状态0,1号线 INSERT语句与外键约束“FK_Sup_Item_Sup_Item_Cat”冲突。数据库“dev_bo”,表“dbo.Sup_Item_Cat”发生冲突。声明已终止。

代码:

insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id, 
                      status_code, last_modified_user_id, last_modified_timestamp, client_id)   
values (10162425, 10, 'jaiso', '123123',
        'a', '12', '2010-12-12', '1062425')

最后一列client_id导致了错误。我试着把已经存在的值放在dbo中。将Sup_Item_Cat放入列,对应于sup_item..但没有快乐:-(


当前回答

父表数据缺失会导致这个问题。 在您的问题中,“dbo”中的数据不可用。“Sup_Item_Cat”导致该问题

其他回答

在我的例子中,我以错误的顺序将值插入到子表中:

对于有2列的表:columnn1和column2,当我错误地输入时,我得到了这个错误:

INSERT INTO Table VALUES('column2_value', 'column1_value');

当我使用下面的格式时,错误得到了解决

INSERT INTO Table (column2, column1) VALUES('column2_value', 'column1_value');

当我的插入值字段包含肉眼不明显的制表符和空格时,我遇到了这个问题。我已经在Excel中创建了我的值列表,复制并粘贴到SQL中,并运行查询来查找FK字段中的不匹配项。

匹配查询没有检测到FK字段中有制表符和空格,但INSERT确实识别了它们,并继续生成错误。

通过复制一条记录中FK字段的内容并将其粘贴到插入查询中,我再次进行了测试。当该记录也失败时,我仔细查看了数据,最终发现了制表符/空格。

一旦我清理了删除的制表符/空格,我的问题就解决了。希望这能帮助到一些人!

你需要发布你的声明以得到更多的澄清。但是…

该错误意味着您正在插入数据的表与另一个表有外键关系。在插入数据之前,外键字段中的值必须首先存在于另一个表中。

在表dbo中。Sup_Item_Cat,它有一个指向另一个表的外键引用。FK的工作方式是,它在该列中的值不能不在引用表的主键列中。

如果你有SQL Server Management Studio,打开它并sp_help 'dbo.Sup_Item_Cat'。查看FK在哪个列上,以及它引用了哪个表的哪个列。你插入了一些坏数据。

如果你需要更好的解释,请告诉我!

父表数据缺失会导致这个问题。 在您的问题中,“dbo”中的数据不可用。“Sup_Item_Cat”导致该问题