如果主键也是另一个表的外键,如何更新它?

use*_*485 5 sql-server-2008

我有一个表 tableA,其中有一列 myID。myID 是表 A 中的主键,是表 B 中的外键。

当我尝试更新 tableA 中特定记录的 myID 时:

update tableA
set myID = 123456
where myID= 999999
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

UPDATE 语句与 FOREIGN KEY 约束“tableA_FK00”冲突。冲突发生在数据库“mydatabase”、表“tableA”、列“myID”中。

我已将 myID 的更新规则设置为“级联”并将外键约束强制执行为“否”,但我仍然无法更新。我应该如何进行?

小智 0

尝试以下步骤:

  • 暂时禁用 FK 约束 ( ALTER TABLE tableA WITH NOCHECK CONSTRAINT ALL)。
  • 更新您的主键
  • 更新您的外键以匹配主键更改
  • 启用反向强制 FK 约束