gpt4 book ai didi

sql - 删除SQL表中的分层数据

转载 作者:行者123 更新时间:2023-12-03 14:47:39 25 4
gpt4 key购买 nike

我有一个包含分层数据的表。
包含其父级ID(“ ID”-键列)的列“ ParentId”。

删除一行时,我要删除所有子级(所有级别的嵌套)。

怎么做?

谢谢

最佳答案

当行数不太大时,erikkallen的递归方法起作用。

这是使用临时表收集所有子项的替代方法:

create table #nodes (id int primary key)
insert into #nodes (id) values (@delete_id)
while @@rowcount > 0
insert into #nodes
select distinct child.id
from table child
inner join #nodes parent on child.parentid = parent.id
where child.id not in (select id from #nodes)

delete
from table
where id in (select id from #nodes)


它从带有@delete_id的行开始,然后从那里开始。 where语句用于防止递归;如果确定没有,则可以将其忽略。

关于sql - 删除SQL表中的分层数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/882352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com