更新级联上的多个级联路径

时间:2014-03-10 17:03:37

标签: sql path relationship cascade

我遇到sql server的问题,当我想要3个表并在它们之间建立关系时,将“On Update”属性更改为“cascade”。

当我想保存图表时会发生这个问题:

在表'Company'上引入FOREIGN KEY约束'FK_Company_Slave'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束。查看以前的错误。

在这张图片中,我定义了我的数据库,FK和....

http://img.upload724.com/images/79103470449346687611.png

感谢。

1 个答案:

答案 0 :(得分:1)

<强>首先

一个表格中的FOREIGN KEY指向另一个表格中的 PRIMARY KEY 。如果您不想在其他表上使用PRIMARY KEY以便使用外键,则必须在表上创建唯一索引。

<强>第二

您可以在Master表上触发后创建,以便手动开发更新级联。换句话说,在没有更新级联的情况下创建公司表和主表之间的外键,然后在主表上创建以下触发器以在主表中更改行后更新公司表。

create trigger triggername on dbo.[Master]
After Insert 
AS Begin
    Update Company
    Set MasterKey = I.MasterKey
    From Inserted I
    Inner join Deleted D on D.Code = I.Code
    Where Company.MasterKey = D.MasterKey
End