sql 游标循环遍历

系统 1827 0
原文: sql 游标循环遍历

  写存储过程的时候碰到一个需要对数据进行遍历循环操作的问题,最后通过游标解决了,感觉很适用、

      
         1
      
       declare @level varchar(
      
        100
      
      
        )


      
      
         2
      
       declare @uid varchar(
      
        100
      
      
        )


      
      
         3
      
       declare cur cursor--
      
        定义一个游标


      
      
         4
      
      
        read_only


      
      
         5
      
      
        for
      
      
        select
      
      
         egg_code.user_id,egg_prize_level


      
      
         6
      
      
        from
      
       egg_code inner join egg_prize on egg_prize.user_id=egg_code.user_id--
      
        为所获得的数据集指定游标


      
      
         7
      
      
         8
      
       open cur--
      
        打开游标


      
      
         9
      
       fetch next 
      
        from
      
       cur into @uid,@level--
      
        把提取操作的列数据放到局部变量中


      
      
        10
      
      
        while
      
      (@@fetch_status=
      
        0
      
      )--
      
        返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。


      
      
        11
      
      
        12
      
      
        begin


      
      
        13
      
       --print 
      
        '
      
      
        等级:
      
      
        '
      
      +@level+
      
        '
      
      
        --------------用户ID:
      
      
        '
      
      +
      
        @uid


      
      
        14
      
      
        15
      
       update egg_code 
      
        set
      
       prize_level=@level   
      
        where
      
       user_id=@uid--
      
        执行操作


      
      
        16
      
      
        17
      
       --
      
        提前下一位信息


      
      
        18
      
       fetch next 
      
        from
      
      
         cur into @uid,@level


      
      
        19
      
      
        end


      
      
        20
      
       close cur--
      
        关闭游标


      
      
        21
      
       deallocate cur--
      
        删除游标


      
      
        22
      
       go
    

使用游标的顺序: 声名游标、打开游标、读取数据、关闭游标、删除游标。
由于 @@FETCH_STATUS 对于在一个连接上的所有游标是全局性的,要小心使用 @@FETCH_STATUS 。在执行一条 FETCH 语句后,必须在对另一游标执行另一 FETCH 语句前测试 @@FETCH_STATUS 。在任何提取操作出现在此连接上前,@@FETCH_STATUS 的值没有定义。

sql 游标循环遍历


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论