我在表中有一个错误的主键记录。我想将其更改为正确的值,但此值在许多其他表中使用。
有没有简单的方法可以同时更新主键和外键?
答案 0 :(得分:8)
如果外键设置为级联更改,则值应自动更改。
答案 1 :(得分:3)
确保您的外键关系指定了ON UPDATE CASCADE,外键将自动更新以匹配主键。
来自联机丛书: http://msdn.microsoft.com/en-us/library/ms174123%28v=SQL.90%29.aspx
ON UPDATE {CASCADE |没有动作|组 默认| SET NULL}
指定在何时创建的表中的行发生的操作 那一行有参考 关系和引用的行 在父表中更新。该 默认为NO ACTION。见 本主题后面的“备注”部分 了解更多信息。
答案 2 :(得分:0)
更新主键不会更新相关的外键,它只删除其他表上的相关记录,因为Sql Server将更新视为删除和插入。这是Sql Server 2000,不确定以后的版本。使用"级联删除"上的级联更新,"删除和插入:aka update"的级联效果删除其他表上的相关记录。