首页 理论教育 SQLServer数据库基础教程:游标的打开与读取

SQLServer数据库基础教程:游标的打开与读取

时间:2023-10-21 理论教育 版权反馈
【摘要】:当打开游标时,服务器执行声明时使用的SELECT语句。如果FETCH NEXT为对游标的第一次提取操作,则返回结果集中的第一行。NEXT为默认的游标提取选项。如果在对游标的第一次提取操作时将FETCH RELATIVE的n或@nvar指定为负数或0,则没有行返回。如果存在同名称的全局和局部游标,则游标名称前指定GLOBAL表示操作的是全局游标,未指定GLOBAL表示操作的是局部游标。变量的数目必须与游标选择列表中的列的数目一致。

SQLServer数据库基础教程:游标的打开与读取

1.打开游标

打开游标使用OPEN语句,其语法格式如下。

当打开游标时,服务器执行声明时使用的SELECT语句。

2.读取游标

游标声明,被打开以后,游标位置位于第一行。可以使用FETCH语句从游标结果集中提取数据。其语法格式如下。

在上述数据参数中:

●NEXT:返回紧跟当前行之后的结果行,并且当前行递增为结果行。如果FETCH NEXT为对游标的第一次提取操作,则返回结果集中的第一行。NEXT为默认的游标提取选项。

●PRIOR:返回紧临当前行前面的结果行,并且当前行递减为结果行。如果FETCH PRIOR为对游标的第一次提取操作,则没有行返回并且游标置于第一行之前。

●FIRST:返回游标中的第一行并将其作为当前行。(www.xing528.com)

●LAST:返回游标中的最后一行并将其作为当前行。

●ABSOLUTE{n|@nvar}:如果n或@nvar为正数,返回从游标头开始的第n行并将返回的行变成新的当前行。如果n或@nvar为负数,返回游标尾之前的第n行并将返回的行变成新的当前行。如果n或@nvar为0,则没有返回。n必须为整型常量且@nvar必须为smallint、tinyint或into。

●RELATIVE{n|@nvar}:如果n或@nvar为正数,返回当前行之后的第n行并将返回的行变成新的当前行。如果n或@nvar为负数,返回当前行之前的第n行并将返回的行变成新的当前行。如果n或@nvar为0,返回当前行。如果在对游标的第一次提取操作时将FETCH RELATIVE的n或@nvar指定为负数或0,则没有行返回。n必须为整型常量且@nvar必须为smallint、tinyint或into。

●游标名称:要从中进行提取数据的游标的名称。如果存在同名称的全局和局部游标,则游标名称前指定GLOBAL表示操作的是全局游标,未指定GLOBAL表示操作的是局部游标。

●INTO@variable_name[,…n]:允许将提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联,各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。

@@FETCH_STATUS()函数报告上一个FETCH语句的状态,当取值为0,表示FETCH语句成功;当取值为-1,表示FETCH语句失败或此行不在结果集中;当取值为-2,表示被提取的行不存在。

另外一个用来提供游标活动信息的全局变量为@@ROWCOUNT,它返回受上一语句影响的行数。若为0表示没有行更新。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈