利用with关键字实现数据查询的递归调用

declare @sysCode nvarchar(50)
declare @re table(id nvarchar(50),OrgCode varchar(50), ParentCode varchar(50),
code varchar(50),name varchar(50),
[level] int)
set @sysCode = '4413030016527';

with cte as (
select id,@syscode as OrgCode,@syscode as ParentCode, code,name,0 as [level] 
from [T_SYS_Department]
where code =@sysCode
union all
select t1.id,@syscode as OrgCode,t2.Code, t1.code, t1.Name, t2.[level]+1 
from [T_SYS_Department] t1,cte t2
where t1.parentId=t2.id
)

insert  @re
select * from cte;
select * from @re

 

posted @ 2012-02-15 16:30  poisson_notes  阅读(242)  评论(0)    收藏  举报