Par*_*ras 1 sql sql-server rdbms cascading-deletes
我有一张桌子,我从中创建了一个具有多个级别和父级的树.表结构如下所示.

当我删除"TitleID"时,我希望删除所有孩子甚至孙子孙女.在sql中最简单的方法是什么?如果我使用"where ParentID = TitleID"进行简单删除,则只删除级别为1的子级.
DECLARE @TitleId INT
SELECT @@TitleId = 2
;WITH results AS(
SELECT TitleId
FROM myTable
WHERE TitleId = @TitleId
UNION ALL
SELECT t.TitleId
FROM myTable t
INNER JOIN ret r ON t.ParentID = r.TitleId
)
DELETE FROM myTable WHERE TitleId IN (SELECT TitleId FROM results )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1973 次 |
| 最近记录: |