sql 游标循环遍历

王朝学院·作者佚名  2016-05-26
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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 begin13 --print '等级:'+@level+'--------------用户ID:'+@uid14 15 update egg_code set prize_level=@level where user_id=@uid--执行操作16 17 --提前下一位信息18 fetch next from cur into @uid,@level19 end20 close cur--关闭游标21 deallocate cur--删除游标22 go

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航