2009-04-28 19 views
1

有谁知道是否有更快的方式来编辑表中有外键的记录(在sql server中)..我会解释..我有大约5个表有自己的ID,但使用外键...更改具有外键的表(sql server)中的记录?

因此我需要改变的外键(在我的情况下,合同号),但我不得不给每个记录复制到一个新的记录和编辑它这样...

由于如果我尝试编辑合同编号,它会给我提供相关联的标准错误,并且违反了外键等。

Surly必须有更好的方法吗?

任何想法?

回答

3

你是在谈论改变PK然后更新所有的FKS?在这种情况下,启用级联更新,这将做自动的 与删除一样,启用级联删除

ON DELETE CASCADE

指定如果试图删除行与外键引用的关键在其他表中的现有行中,包含这些外键的所有行也被删除。如果还在目标表上定义了级联参考操作,则还会为从这些表中删除的行采用指定的级联操作。

ON UPDATE CASCADE

指定如果试图在一排,其中键值由外键在其他表的现有行引用更新键值,所有的外键值都也更新为为该密钥指定的新值。如果级联参考操作

+0

感谢您的帮助,我打算使用udpate级联,但我想我可能需要重新组织我的外键 – 2009-04-30 10:50:22

3

我不是SQL专家,但不能像ON UPDATE CASCADE那样设置类似于主键更改时自动更新外键的东西吗?

0

或者尝试禁用完整性约束,请执行更改并尝试重新启用约束。基本上,如果你没有这样做,你会得到一个错误,然后(不能启用一个违反约束)。

相关问题