β

T-SQL游标

Leeyee's Blog 3 阅读
版权声明:
类似指针。可以对 SELECT 返回数据逐行进行处理。支持以下功能:

分类

定义

/* 声明游标名 */
DECLARE cursor_name CURSOR
/* 游标作用域 */
[LOCAL|GOBAL]
/* 游标移动方向。默认FORWARD_ONLY */
[FORWARD_ONLY|SCROLL]
/* 游标类型 */
[STATIC|KEYSET|DYNAMIC|FAST_FORWARD]
/* 访问属性 */
[READ_ONLY|SCROLL_LOCKS|OPTIMISTIC]
/* 类型转换警告信息 */
[TYPE_WARNING]
FOR SELECT_statement
/* 可修改的列 */
[FOR UPDATE [OF column_name[,...n]]]

打开游标

OPEN [GLOBAL] cursor_name | @cursor_variable_name
可以通过判断全局变量 @@ERRORS 是否为0来确认游标是否打开成功。打开成功可通过全局变量 @@CURSOR_ROWS 获取游标中的记录行数。
@@ERRORS 说明
-m 游标采用异步方式填充,m为当前健集中已填充的行数
-1 动态游标,游标中的行数时动态变化的,不能确定
0 游标没被打开或者已被关闭或释放
m 填充完成,返回有标中的行数

获取数据

FETCH [NEXT|PRIOR|FIRST|LAST|ABSOLUTE{n|@nvar}|RELATIVE{n|@nvar}]
FROM [GLBAL] cursor_name | @cursor_variable_name
[INTO @variable_name[,...n]]
参数 说明
NEXT 当前行后一行。第一使用次,则返回第一行。 默认
PRIOR 当前行前一行
FIRST 返回第一行并将其当作当前行
LAST 返回最后一样并将其当作当前行
ABSOLUTE{n| @nvar } n>0返回从游标头开始的第n行;n<0返回从游标尾之前的第n行;游标移到该行
RELATIVE{n| @nvar } n>0当前行后第n行;n<0当前行前第n行;游标移到该行
INTO @variable_name[,...n] 存入变量
@@FETCH_STATUS 返回获取语句执行的最终状态。需要说明的是:

阅读全文......

作者:Leeyee's Blog
RSS feed for
原文地址:T-SQL游标, 感谢原作者分享。

发表评论