首页 新闻 会员 周边 捐助

sql无限递归如何删除(大牛来)

0
[已关闭问题] 关闭于 2010-04-03 10:31

数据表如下:

id   content   parentId

说明:id为主键,自增,content字符串类型,parentId整形(当为一级栏目时,parentId值为0)

现在如果删除某一节点内容,如何做递归呢,我想用存储过程实现,回答希望详细一些,偶是小菜

Joe_true的主页 Joe_true | 初学一级 | 园豆:98
提问于:2010-03-27 15:19
< >
分享
所有回答(3)
0

1select * from system_part order by id
2exec selpart
3create proc selpart 
4as
5begin
6declare @id int
7declare @level int
8declare @t table(id int,[level] int)
9set @id=382
10set @level=1
11insert into @t values (@id,@level)
12while @@rowcount>0 
13 begin
14 set @level=@level+1
15 insert into @t 
16 select a.id,@level 
17 from system_part as a 
18 join @t as b on a.parentid=b.id where b.[level]=@level-1
19 
20 end
21select * from system_part where id in (select id from @t)
22end

LittlePeng | 园豆:3445 (老鸟四级) | 2010-03-29 12:22
0

Create Procedure SP_GetSubID(ID int)

as

begin

    Declare @tmp_Table table(ID int)

  Declare @Count int  

  insert into @tmp_Table

  select ID from Table where ID = @ID

  while(@RowCount <>0 )

  begin

        insert into @tmp_Table

    select ID,ParentID

    from Table A inner join @tmp_Table B

      on A.ID = B.ParentID

  end

  select * from @tmp_Table

end 

lily.zheng | 园豆:151 (初学一级) | 2010-03-31 13:57
0

许多问题的的解决方法是

先是: 数据库解决,如果不行

数据库方+后台程序解决,如果还不行

数据库方+后台程序+页面JS解决,如果三方联合起来都解决不了,

就不用解决了!

拉克斯文 | 园豆:356 (菜鸟二级) | 2010-04-01 16:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册