这是我的问题 - 我有 2 个表:
- WORKER,包含
|ID|OTHER_STAF|
列,其中 ID 为主键 - FIRM,包含
|FPK|ID|SOMETHING_ELSE|
列,其中 FPK 和 ID 的组合构成主键,并且 ID 是引用 WORKER.ID 的外键(不为空,并且必须具有与 WORKER 中的值相同)。
我想要创建存储过程UPDATE_ID_WORKER
,我想在其中更改 WORKER 中特定 ID 的值,以及 FIRM 中 ID 特定值的所有实例。
最佳答案
您实际上不应该这样做,而是插入新记录并以这种方式更新它。
但是,如果您确实需要,可以执行以下操作:
- 暂时禁用强制执行 FK 约束(例如
ALTER TABLE foo WITH NOCHECK CONSTRAINT ALL
) - 然后更新您的 PK
- 然后更新您的 FK 以匹配 PK 更改
- 最后启用强制 FK 约束
关于sql-server - 如何更新主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2499246/