RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
扫码咨询
关闭右侧工具栏
详解SQL游标的用法
  • 作者:admin
  • 发表时间:2020-11-27 07:50
  • 来源:未知

这篇文章主要介绍了SQL游标的用法,文中讲解非常详细,配合代码帮助大家更好的理解学习,感兴趣的朋友可以了解下

类型:

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 }