sql 获取树的子节点,以及路径

表结构:

id      dirname parentid status
1000 根目录 0 1
1001 企业文化 1000 1
1007 企业文化0 1000 1
1008 000 1007 1

 

select dbo.GetPath(1008)  
运行结果为:根目录/企业文化0/000/

代码如下:

create function dbo.GetPath(@id int)
returns varchar(max)
/*
获取目录的路径id 为子节点名,返回结果为对应ID 的路径
*/
as 
begin
   declare @result varchar(max)
   declare @parentid int
   declare @dirname varchar(100)    
   set @result=''
   --先获取传递进来的id 的父节点 
   if not exists(select * from articledir where )
   begin
    return @result
   end
   select @parentid=parentid,@dirname=dirname from articledir where 
   set @result=dbo.GetPath(@parentid)+@dirname+'/'+@result
   return 
end

posted @ 2012-11-13 20:25  岁寒松柏  阅读(742)  评论(0编辑  收藏  举报