sql-server - 在级联递归表上删除 - 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
:
所以,当我删除 Jon: Robert、Alex 和 Jeff 时,也需要删除。
当我删除爱丽丝时:乔恩、罗伯特、亚历克斯和杰夫也需要被删除。
当我这样做时,我得到了这个错误:
在表“Person”上引入 FOREIGN KEY 约束“fkIdFather”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束。请参阅以前的错误。
我该如何解决这个问题?