如何删除一个节点及其下面的所有子节点?
---测试数据
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[table1] ') and OBJECTPROPERTY(id, N 'IsUserTable ') = 1)
drop table [dbo].[table1]
create Table table1(
fdId varchar(50),
fdName varchar(50),
fdFatherId varchar(50),
fdLevel varchar(50)
)
insert into table1 select '1 ', '全部产品 ', '0 ', '0 '
insert into table1 select '2 ', '家电产品 ', '1 ', '1 '
insert into table1 select '3 ', '小家电 ', '2 ', '2 '
insert into table1 select '4 ', '空调系列 ', '2 ', '2 '
insert into table1 select '5 ', '格力空调 ', '4 ', '3 '
insert into table1 select '6 ', '冰箱系列 ', '2 ', '2 '
insert into table1 select '7 ', '床上用品 ', '1 ', '1 '
select * from table1
/*
fdId fdName fdFatherId fdLevel
1 全部产品 0 0
2 家电产品 1 1
3 小家电 2 2
4 空调系列 2 2
5 格力空调 4 3
6 冰箱系列 2 2
7 床上用品 1 1
fdId为该物品类的编号
fdName为名称
fdFatherId为所属父节点编号
(即属于在那个fdId之下)
fdLevel为在TreeView所属的等级
对应的TreeView显示是这样的
全部产品
--家电产品
--小家电
--空调系列
--格力空调
--冰箱系列
--床上用品
问题:怎么删除一个节点,其下级所有子节点都删除呢?
如删除家电产品:哪么就要删除:家电产品,小家电,空调系列,格力空调,冰箱系列
这个算法sql语句怎么写呀,我是用delphi的,写成delphi或sql存储过程都行
*/
------解决方案----------------------生成测试数据
create table BOM(ID INT,Topic_ID INT,MSG VARCHAR(1000))
insert into BOM select 1,0,NULL
insert into BOM select 2,1,NULL
insert into BOM select 3,1,NULL
insert into BOM select 4,2,NULL
insert into BOM select 5,3,NULL
insert into BOM select 6,5,NULL
insert into BOM select 7,6,NULL
go
--创建用户定义函数
create function f_getChild(@ID VARCHAR(10))
returns @t table(ID VARCH