在级联递归表上删除-SQL Server

时间:2018-12-14 16:39:53

标签: sql-server

上面链接的重复项无法解决问题。他们只讨论了必须解决的可能性。

我需要删除同一表上层叠的一个项目,所以我有:

CREATE TABLE Person
(
    id int primary key identity,
    name varchar(30) not null,
    idFather int

    CONSTRAINT fkIdFather FOREIGN KEY (idFather) REFERENCES Person(id) ON DELETE CASCADE
)

我有一个类似select的结果:

enter image description here

因此,当我删除Jon时:Robert,Alex和Jeff也需要删除。

当我删除爱丽丝时:乔恩,罗伯特,亚历克斯和杰夫也需要删除。

执行此操作时,出现此错误:

  

在表“人”上引入外键约束“ fkIdFather”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

     

无法创建约束。查看以前的错误。

我该如何解决?

0 个答案:

没有答案