T-sql 游标

系统 1621 0
 

游标简介:
    
Sql 游标提供了一种循环结果集的机制,它对数据集中的数据进行逐行读取,可以实现不易用 select 语句语法轻易地表达复杂计算。
     通过
sql 语言从数据库中检索数据口,然后把结果放到内存的一块区域中 . 往往这个结果讲包含多条数据,这也是游标产生了一个不可避免的弊端对系统资源占用相对较大。

游标的使用过程:

1. 声明游标

2. 打开游标

3. 从游标中重复(读取)行,有选择的修改或者删除

4. 关闭游标

5. 当不再需要游标时,释放游标

 

声明一个游标

 DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR sql-statement

例: Declare Mycursor

   For select * from tb_name

打开游标

OPEN MyCursor

游标的操作

 FETCH
            [ NEXT | PRIOR | FIRST | LAST]
FROM
{ 游标名 | @ 游标变量名 } [ INTO @ 变量名 [ …] ]

一.    可滚动游标

 Next        当前行的下一行

 Prior        当前行的前一行

 First        第一行

 Last         最后一行

 Absolute n    n>0, 定位到从开始的第 n

                   n=0 没有返回行

                    n<0 定位到末尾前的第n行

 Relative n    n<-1 定位到当前行之前的第n行

                  n=-1 通Prior关键字相同

                  n=0 定位到当前行 [重读]
                 
n=1 同Next关键字相同

                 N>1定位到当前行之后的第n行

 

Code

每执行一个FETCH 操作之后,通常都要查看一下全局变量 @@FETCH_STATUS 中的状态值,以此判断 FETCH 操作是否成功。该变量有三种状态值:
· 0 表示成功执行 FETCH 语句。
· -1 表示 FETCH 语句失败,例如移动行指针使其超出了结果集。
· -2 表示被提取的行不存在。
由于 @@FETCH_STATU 是全局变量,在一个连接上的所有游标都可能影响该变量的值。因此,在执行一条 FETCH 语句后,必须在对另一游标执行另一 FETCH 语句之前测试该变量的值才能作出正确的判断。


 

 

 

Code

T-sql 游标


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

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

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

【本文对您有帮助就好】

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

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