多个级联路径

时间:2012-05-15 11:04:07

标签: sql sql-server

我遇到多个级联路径错误的问题。这是我的表格:

表(公司)
公司代码(PK)
....

表(飞机)
飞机注册(PK)
OwnerCode(FK to CompanyCode)
OperatorCode(FK to CompanyCode)
....

当我更新公司的主键时,我只想更新飞机表中的所有者代码和操作员代码外键。

解决此问题的正确方法是使用触发器吗?

1 个答案:

答案 0 :(得分:2)

您可以将ON UPDATE CASCADE添加到外键定义中,如果引用的键(即Companies.CompanyCode)发生更改,则会自动更新这些值。

编辑:但正如您在评论中所指出的,这对于有两个外键引用同一列的表不起作用,因此对于这些情况,您必须使用触发器或执行所有更新都以“受控”方式进行,例如通过更新引用列的存储过程。哪种方法更好取决于您的应用程序设计以及数据库的使用方式。