本文整理自网络,侵删。
目录
- ?类型:
- 1.普通游标
- 2.滚动游标
- 具体FETCH用法:
- Arguments
- 总结
?类型:
1.普通游标? ?只有NEXT操作
2.滚动游标 有多种操作
1.普通游标
DECLARE @username varchar(20),@UserId varchar(100) DECLARE cursor_name CURSOR FOR --定义游标 SELECT TOP 10 UserId,UserName FROM UserInfo ORDER BY UserId DESC OPEN cursor_name --打开游标 FETCH NEXT FROM cursor_name INTO @UserId,@username --抓取下一行游标数据 WHILE @@FETCH_STATUS = 0 BEGIN PRINT '用户ID:'+@UserId+' '+'用户名:'+@username FETCH NEXT FROM cursor_name INTO @UserId,@username END CLOSE cursor_name --关闭游标 DEALLOCATE cursor_name --释放游标
结果:
用户ID:zhizhi? ? ? ? ? ? 用户名:邓鸿芝
用户ID:yuyu? ? ? ? ? ? 用户名:魏雨
用户ID:yujie? ? ? ? ? ? 用户名:李玉杰
用户ID:yuanyuan? ? ? ? ? ? 用户名:王梦缘
用户ID:YOUYOU? ? ? ? ? ? 用户名:lisi
用户ID:yiyiren? ? ? ? ? ? 用户名:任毅
用户ID:yanbo? ? ? ? ? ? 用户名:王艳波
用户ID:xuxu? ? ? ? ? ? 用户名:陈佳绪
用户ID:xiangxiang? ? ? ? ? ? 用户名:李庆祥
用户ID:wenwen? ? ? ? ? ? 用户名:魏文文
2.滚动游标
--带SCROLL选项的游标 SET NOCOUNT ON DECLARE C SCROLL CURSOR FOR --SCORLL 后,有了更多的游标操作(滚动游标) SELECT TOP 10 UserId,UserName FROM UserInfo ORDER BY UserId DESC OPEN C FETCH LAST FROM C --最后一行的数据,并将当前行为指定行 FETCH ABSOLUTE 4 FROM C --从第一行开始的第4行数据,并将当前行为指定行 这里的n可正可负,n>0 往下翻,n<0 往上翻 FETCH RELATIVE 3 FROM C --相对于当前行的后3行数据,并将当前行为指定行 这里的n可正可负 FETCH RELATIVE -2 FROM C --相对于当前行的前2行数据,并将当前行为指定行 FETCH PRIOR FROM C ----相对于当前行的前1行数据 FETCH FIRST FROM C --刚开始第一行的数据,并将当前行为指定行 FETCH NEXT FROM C --相对于当前行的后1行数据 CLOSE C DEALLOCATE C
结果(可以参考第一个结果分析):
具体FETCH用法:
FETCH [ [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE { n | @nvar } | RELATIVE { n | @nvar } ] FROM ] { { [ GLOBAL ] cursor_name } | @cursor_variable_name } [ INTO @variable_name [ ,...n ] ]
Arguments
NEXT
Returns the result row immediately following the current row and increments the current row to the row returned. If FETCH NEXT is the first fetch against a cursor, it returns the first row in the result set. NEXT is the default cursor fetch option.
PRIOR
相关阅读 >>
用sql语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
更多相关阅读请进入《sql》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » SQL中游标(cursor)的基本使用实例
相关推荐
评论
管理员已关闭评论功能...