日期:2014-05-18  浏览次数:20412 次

SQL高手问题请教
下面这里有2段代码,功能是使用了游标从pubs数据库中的authors提取数据并显示,但我用了2个不一样的代码,但结果都是     正确的,    
(1)declare     r1     cursor     for     select     *     from     authors    
open     r1    
fetch     next     from     r1    
while     @@rowcount <> 0         --判断上一次游标读写的记录数量    
      fetch     next     from     r1    
close     r1    
deallocate     r1    
     
  (2)declare     r1             cursor    
      for         select*     from     authors    
      open         r1    
      fetch         next         from         r1    
          while     @@fetch_status=0    
              fetch         next         from         r1    
            close         r1    
          deallocate             r1  
请告诉我他们有没有什么区别。

------解决方案--------------------
当然有区别了,后一条肯定是对的.
前一条不一定.fetch next from r1 一定要是最后一条执行的语句才行.
否则@@rowcount 反映的就是其他语句影响的记录数.
------解决方案--------------------
1、while循环没执行
2、while循环执行