更改具有外键的表(sql server)中的记录?

时间:2009-04-28 17:47:26

标签: sql sql-server database foreign-keys

有没有人知道是否有更快的方法来编辑在表中具有外键的记录(在sql server中)..我将解释..我有大约5个表有自己的ID但是使用链接在一起外键......

因此我需要更改外键(在我的情况下是合约号码),但我必须将每条记录复制到新记录并以这种方式编辑...

好像我试图编辑合同号码,它给了我关联和违反外键等的标准错误

Surly必须有更好的方法吗?

任何想法?

3 个答案:

答案 0 :(得分:3)

我不是SQL专家,但是你不能设置像ON UPDATE CASCADE这样的东西,以便在更改主键时自动更新外键吗?

答案 1 :(得分:3)

你在谈论改变PK然后更新所有Fks吗?在这种情况下,启用级联更新,这将自动完成 与删除相同,您启用级联删除

ON DELETE CASCADE

指定如果尝试使用其他表中现有行中的外键引用的键删除行,则还会删除包含这些外键的所有行。如果还在目标表上定义了级联引用操作,则还会对从这些表中删除的行执行指定的级联操作。

ON UPDATE CASCADE

指定如果尝试更新行中的键值,其中键值由其他表中现有行中的外键引用,则所有外键值也将更新为指定的新值钥匙。如果级联引用动作

答案 2 :(得分:0)

或尝试禁用完整性约束,进行更改并尝试重新启用约束。基本上,如果你做得不对,那么你会得到一个错误(不能启用一个会被违反的约束)。