当前位置:编程学习 > C#/ASP.NET >>

存储过程中用递归找当相应记录时出现的问题!!!

现在有一个test表: 
id   lab 
1       0 
2       1 
3       2 
4       3 
5       2 
6       5 
另一个表temptable,表结构跟test表是一样的,开时时里面记录为空,现在要把所有跟lab=1有关的记录都放在temptable里(具体描述一下需求:lab=1时, 
有一条记是2   1   ,然后再找到lab=2时的所有记录是3   2   ;5   2   ,然后再找lab=3   lab=5的记录,以此类推,这样肯定要用递归实现 
正确的结果就应该为 
2       1 
3       2 
4       3 
5       2 
6       5 
而我写的存储过程结果老是有问题,请教哪位大哥帮帮忙呀..我的存储过程是: 
CREATE     procedure   AA1(@id   int) 
  as         
    Drop   Table   #temp 
    
    select   no=Identity(int,1,1),id,lab   Into   #temp   from   test   where   lab       =       @id 
    declare   @m   int 
    declare   @n   int 
    declare   @s   int   
    set   @m=1 
    set   @s=(select       count(*)       from       test       Where       lab       =     @id) 
    if   @s> 0 
    begin 
        while       @m <=   (select     count(*)       from       test       Where       lab       =       @id)   
            begin                                 
          
              insert       into       temptable           
                select       *           
                from       test       Where       id       =(select       id       from       #temp       WHERE       no       =       @m)           
              
              set   @n=   (select       id       from       #temp       WHERE       no       =       @m) 
                exec   AA   @n             

          set     @m=@m+1 
        end       
  end           
        
GO 
--------------------编程问答-------------------- 路过帮顶 
============= 
11月6日,论坛升级公告,积分已经做了调整! 
http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html 
此次调整增加了两个新的可用分获取渠道: 
1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励; 
2:帖子结帖后会返还帖主50%的悬赏分,无满意结帖不返还分数; 
3:接下来会不断增加新的可用分获取途径,比如参与活动赠送等,请大家多关注;
补充:.NET技术 ,  .NET Framework
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,