这句话怎么样:
The DELETE statement conflicted with the FOREIGN KEY constraint "FK_statobj_begpasid". The conflict occurred in database "db.mdf", table "dbo.stationobjects", column 'beginpassageid'.
抛出此异常?
allow-intent
我不知道,但事情发生了。 beginPassageId是passageid上的外键。
编辑: 考虑一下NOT IN。我想删除其中一个相关表格中不存在的所有段落。它通常有效,但它发生过一次。
谢谢。
答案 0 :(得分:0)
这意味着通道是父表。和stationobjects是子表。您正试图从stationobjects表中存在的通道表中删除passid。
首先尝试从stationobjects中删除那些passid然后你可以运行这个删除语句。
如果您的数据库支持,则替代方法是级联删除。
答案 1 :(得分:0)
当您在两个表中具有外键关系时会发生这种情况。
这违反了Refrential Integrity。
所以如果你从主表中删除记录并且记录存在于外键表中,
那你有两个选择:
1.将删除规则设置为级联,以便在删除主记录时,外键表记录将自动删除
2.首先从外键表中删除记录,然后从主键表中删除记录。
答案 2 :(得分:-1)
当表A外键是表B主键并且当您尝试删除表A中具有链接的表A中的记录时,会出现这种错误,则不会发生删除。在删除之前尝试删除外键关系。同样,通过删除fk关系并在表重置后再次重建它们,在表中使用truncate