我遇到sql server的问题,当我想要3个表并在它们之间建立关系时,将“On Update”属性更改为“cascade”。
当我想保存图表时会发生这个问题:
在表'Company'上引入FOREIGN KEY约束'FK_Company_Slave'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束。查看以前的错误。
在这张图片中,我定义了我的数据库,FK和....
感谢。
答案 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