存储过程来实现递归查找节点

表结构如下:

查找所有节点用来删除:

create PROCEDURE UserClassDeleteAllNodeUsedProcedure

@ClassID nchar(10)

AS

 declare @id int

 set @id=@ClassID;

 with RootNodeCTE(id,ParentID)

 as

 (

  Select ClassID,ParentID from Tb_UserClass

  where ParentID in (@id)

   

  Union all

  Select Tb_UserClass.ClassID,Tb_UserClass.ParentID

  From RootNodeCTE

  inner join Tb_UserClass on RootNodeCTE.id=Tb_UserClass.ParentID

 )

 delete from Tb_UserClass

 Where ClassID In

 (

  Select id from RootNodeCTE

  union all

  Select @classid

 )

posted on 2013-01-22 12:24  程序小民工  阅读(126)  评论(0)    收藏  举报

导航