例如表department中有字段deptid,parentid。当删除一个父结点时,删除它的其下的所有子结点。
注:此方法只能在SQL Server 2005中使用,SQL Server 2000不支持。
WITH tempdept AS
( SELECT root.deptid, root.parentid
FROM department root
WHERE deptid=1
UNION all
SELECT sub.deptid, sub.parentid
FROM department sub, tempdept super
WHERE sub.parentid = super.deptid
)
delete from department where deptid in
( select deptid from tempdept )
删除后查看是否正确。已测试。
select * from department
删除父子结构表中数据SQL语句
最新推荐文章于 2024-09-11 06:57:25 发布
本文介绍了一种在SQL Server 2005中递归删除部门表中指定节点及其所有子节点的方法。通过使用公共表表达式(CTE),可以有效地实现这一目标。此方法不适用于SQL Server 2000。
490

被折叠的 条评论
为什么被折叠?



