Sql 多级联路径

Sql 多级联路径,sql,sql-server,Sql,Sql Server,我有多个级联路径错误的问题。这是我的桌子: 表格(公司) 公司代码(PK) 表格(飞机) 飞机注册(PK) 所有者代码(FK到公司代码) 运算符代码(FK到公司代码) 我只是想在更新公司中的主键时更新aircraft表中的ownercode和operatorcode外键 使用触发器是解决此问题的正确方法吗?您可以添加到外键定义中,如果引用的键(即companys.CompanyCode)发生更改,则值将自动更新 编辑:但正如您在注释中所指出的,这不适用于具有两个外键引用同一列的表,因此在这些

我有多个级联路径错误的问题。这是我的桌子:

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

表格(飞机)
飞机注册(PK)
所有者代码(FK到公司代码)
运算符代码(FK到公司代码)

我只是想在更新公司中的主键时更新aircraft表中的ownercode和operatorcode外键

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

您可以添加到外键定义中,如果引用的键(即companys.CompanyCode)发生更改,则值将自动更新


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

这是我尝试过的,但它给了我一个错误“…可能会导致循环或多个级联路径”。这是因为我有两个FK指向同一个表,“所有者代码”和“操作员代码”“我错了,我没有马上明白那一点。我已经更新了我的答案。我认为触发器是处理SQL Server中多个级联路径的唯一方法。