我有一个类别表,其中一个字段用作子类别表的外键。作为每个表的主键一部分的一个字段是语言 ID。我需要在两个表中更新这些。基本上,无论两个表中的语言 id = x,我都需要将其设置为 y。
当我尝试对任一表进行更新时,我得到一个“UPDATE 语句与 REFERENCE 约束冲突..”,它指的是外键约束。
如何更新这两个表上的语言字段?
原文由 derek 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个类别表,其中一个字段用作子类别表的外键。作为每个表的主键一部分的一个字段是语言 ID。我需要在两个表中更新这些。基本上,无论两个表中的语言 id = x,我都需要将其设置为 y。
当我尝试对任一表进行更新时,我得到一个“UPDATE 语句与 REFERENCE 约束冲突..”,它指的是外键约束。
如何更新这两个表上的语言字段?
原文由 derek 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用这个,也不需要删除和添加。
ALTER TABLE Table_Name
NOCHECK CONSTRAINT FoerignKey_Name
--update query here
ALTER TABLE Table_Name
CHECK CONSTRAINT FoerignKey_Name
有关更多信息 MSDN 链接: https ://learn.microsoft.com/en-us/sql/relational-databases/tables/disable-foreign-key-constraints-with-insert-and-update-statements?view=sql- 服务器-ver15
原文由 Mehsaan1719 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您正在执行 1 次修复,请删除约束、更新,然后重新添加约束。
如果您需要在应用程序中执行此操作,请插入一个类别行,更新子类别行,然后删除原始类别行。