【问题标题】:multiple cascade paths, on update cascade多个级联路径,更新级联
【发布时间】:2014-03-10 17:03:36
【问题描述】:
我的 sql server 有问题,当我想要 3 个表并在它们之间建立关系时,将“更新时”属性更改为“级联”。
当我想保存图表时发生了这个问题:
在表“Company”上引入 FOREIGN KEY 约束“FK_Company_Slave”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束。查看以前的错误。
在这张图片中,我定义了我的数据库、FK 和 ....
谢谢。
【问题讨论】:
标签:
sql
path
relationship
cascade
【解决方案1】:
第一:
一个表中的FOREIGN KEY 指向另一个表中的PRIMARY KEY。如果您不想在其他表上使用PRIMARY KEY 来生成外键,则必须在表上创建唯一索引。
第二:
您可以在主表上创建后触发器,以便手动开发更新级联。换句话说,您在没有更新级联的情况下创建公司表和主表之间的外键,然后在主表中更改行后在主表上创建以下触发器以更新公司表。
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