专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
sql
当前位置:首页 > 技术文档 > sql >  > 
sql server 采用传统sql兼容 2000 2005 递归查询

declare @i int ,@row int;

 

set @i=0;

 

set @row=0;

 

declare @temp table(JX_TargetID uniqueidentifier,ParentID uniqueidentifier);

 

insert @temp select JX_TargetID,ParentID from JX_Target where JX_TargetID

 

='3237CA9D-3CFA-436C-A352-1711CD9A3914';

 

while @i<=@row

 

begin

 

insert @temp select JX_TargetID,ParentID from JX_Target a where exists (

 

select * from @temp b where a.ParentID= b.JX_TargetID

 

) and not exists (

 

select * from @temp b where a.JX_TargetID= b.JX_TargetID

 

);

 

set @i=@i+1;

 

set @row=(select count(1) from @temp);

 

end

 

select * from JX_Target where JX_TargetID in

 

 (select JX_TargetID from @temp);

 

使用 with 进行对表的递归查询,只能针对于 sql 2005 sql 2008 使用。而 sql 2000 的数据库无法使用这个sql语句。

以上,是兼容sql server 的sql语句。