读取游标

读取游标是指使用fetch语句从打开的游标中逐行读取数据,以进行相关处理

语法:

fetch

{[first|last|prior|next|relative|absolute n]}

from <游标名>

[Into @<变量> [,….n]]

First :返回游标中第一行,并将其设为当前行。

Last 返回游标中的最后一行,并将其设为当前行。

Prior:返回结果集中当前行的前一行,并将其设为当前行。如果 Fetch prior是第一次读取游标中的数据,则无记录返回,并把游标位置设为第一行。

Next返回结果集中当前行的下一行,并将其设为当前行。如果Fetch Next是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行。Next是默认的游标提取选项

Relative n:按照相对位置读取数据。如果n为正数,则返回从当前行开始向后的n行,并将其设为当前行;如果n为负数,则返回从当前行开始向前的第n行,并将其设为当前行。

Absoluten:按照绝对位置读取数据。如果n为正数,则返回从游标头开始向后的第n行,并将其设为当前行:如果n为负数,则返回从游标末尾开始第n行,并将其设为当前行。

Into @<变量> [,…..n] : 将读取的列的数据存放在多个变量中。变量的数量、排列顺序以及数据类型必须与声明游标时使用的select语句中引用的数据列数量、排列顺序以及数据类型保持一致。

使用Fetch语句一次可以提取一条记录。通过检测全局变量@@Fetch_status的值,可以获得Fetch语句的状态信息,该状态信息可以用来判断该Fetch语句返回数据的有效性。@@Fetch_status变量有3个不同的返回值,如

返回值

描述

Fetch语句执行成功

-1

Fetch语句执行失败或行不在结果集中

-2

读取的行不存储

从上面的例子mycursor 读取数据,并查看Fetch语句的状态

Fetch next from mycursor

select ‘执行状态’==@@Fetch_status

相关推荐