博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

@@FETCH_STATUS 嵌套游标

Posted on 2009-03-17 17:15  sky_water  阅读(1702)  评论(0)    收藏  举报
这么说,@@FETCH_STATUS不应称为全局变量呀?  
  它是属于某一个游标的,是吗?  
  -------------------------------------------------------------------------------------  
  不是.@@FETCH_STATUS属于任何游标的,只要任何一个游标被提取了,这个提取成功与否的状态就会保存到@@FETCH_STATUS中.  
  嵌套游标的原理类似这样:  
  declare   外层游标  
  open   外层游标  
  fetch   next   ...提取外层游标行  
  while   @@FETCH_STATUS   =   0  
  begin  
          declare   内层游标  
          open   内层游标  
          ftech   next   ...提取内层游标行  
          while   @@FETCH_STATUS   =   0  
          begin  
                      .....处理内层游标  
                      ftech   next   ....内层游标向下移动一行  
          end  
          close   内层游标  
          deallocate   内层游标  
          fetch   next   ....内层游标处理结束后,外层游标才继续向下移动一行  
  end    
  close   外层游标  
  deallocate   外层游标  
  也就是说,外层游标每移动一行,就要重复进行内层游标定义,打开,循环,关闭,释放等操作,然后才能再向下移动行.  
  具体请参考DECLARE   CURSOR,里面有个嵌套游标的例子,很容易理解.