【发布时间】:2020-10-27 00:02:32
【问题描述】:
我有两张表,User and Data. For audit purposes, I have two columns added in the Datatable:AddedByandLastModifiedBy`。
两列都引用User 表及其UserId 列。我在两个外键上都设置了 On delete set null 约束。 SQL Server 不允许我创建表Data 并抛出错误:
在表“Data”上引入 FOREIGN KEY 约束“FK__Data__LastModifi__0A9D95DB”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
这些是 SQL 脚本:
CREATE TABLE [User]
(
UserId int PRIMARY KEY IDENTITY(1,1),
Name varchar(100) not null
)
CREATE TABLE [Data]
(
Id int PRIMARY KEY IDENTITY(1,1),
A int,
B varchar(10),
AddedBy int
FOREIGN KEY REFERENCES [User](UserId)
ON DELETE SET NULL,
LastModifiedBy int
FOREIGN KEY REFERENCES [User](UserId)
ON DELETE SET NULL
)
删除ON DELETE 约束解决了问题,但问题是为什么我不能有两个ON DELETE SET NULL 条件?
【问题讨论】: