declare @TempTable table(SectionID int,X int,Level int)
declare @level int
declare @TempX int
set @level=0
set @TempX=8
insert @TempTable(SectionID,X,level)
select SectionID,X,@level from spb_ForumSections where ParentID=1
while @@RowCount>0 and @tempX=8  
begin
set @level=@level+1
print @level
insert @TempTable(SectionID,X,Level)
Select a.SectionID,a.X,@level 
from spb_ForumSections a,@TempTable b
where a.ParentID=b.SectionID and b.level=@level-1

end 
这里的循环是怎么在循环啊,可以解决下不.

解决方案 »

  1.   

    while  开始后面那一段就是循环了。。
       其中 @@rowcount>0 and tempx=8 是限制循环的条件
      

  2.   

    while @@RowCount>0 and @tempX=8--上一个语句影响的行数大于0并且@tempX=8
      

  3.   

    @@RowCount 表示最后一条语句执行后影响的行数,只要上面的begin ... end中insert插入了值@@RowCount就会>0,直到没有插入值循环结束
      

  4.   

    每循环一次@level +1,再输出@level ..
      再插入表@Temptable ,直到循环不满足条件为止