<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
各参数含义说明如下:
•NEXT
返回结果集中当前行的下一行,并增加当前行数为返回行行数。如果FETCHNEXT是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行。
•PRIOR
返回结果集中当前行的前一行,并减少当前行数为返回行行数。如果FETCHPRIOR是第一次读取游标中数据,则无数据记录返回,并把游标位置设为第一行。
•FIRST
返回游标中第一行。
•LAST
返回游标中的最后一行。
•ABSOLUTE{n|@nvar}
如果n或@nvar为正数,则表示从游标中返回的数据行数。如果n或@nvar为负数,则返回游标内从最后一行数据算起的第n或@nvar行数据。若n或@nvar超过游标的数据子集范畴,则@@FETCH_STARS返回-1,在该情况下,如果n或@nvar为负数,则执行FETCHNEXT命令会得到第一行数据,如果n或@nvar为正值,执行FETCHPRIOR命令则会得到最后一行数据。n或@nvar可以是一固定值也可以是一smallint,tinyint或int类型的变量。
•RELATIVE{n|@nvar}
若n或@nvar为正数,则读取游标当前位置起向后的第n或@nvar行数据;如果n或@nvar为负数,则读取游标当前位置起向前的第n或@nvar行数据。若n或@nvar超过游标的数据子集范畴,则@@FETCH_STARS返回-1,在该情况下,如果n或@nvar为负数,则执行FETCHNEXT命令则会得到第一行数据;如果n或@nvar为正值,执行FETCHPRIOR命令则会得到最后一行数据。n或@nvar可以是一固定值也可以是一smallint,tinyint或int类型的变量。
•INTO@variable_name[,...n]
允许将使用FETCH命令读取的数据存放在多个变量中。在变量行中的每个变量必须与游标结果集中相应的列相对应,每一变量的数据类型也要与游标中数据列的数据类型相匹配。
@@FETCH_STATUS全局变量返回上次执行FETCH命令的状态。在每次用FETCH从游标中读取数据时,都应检查该变量,以确定上次FETCH操作是否成功,来决定如何进行下一步处理。@@FETCH_STATUS变量有三个不同的返回值,如表13-2。
在使用FETCH命令从游标中读取数据时,应该注意以下的情况:
当使用SQL-92语法来声明一个游标时,没有选择SCROLL选项时,只能使用FETCHNEXT命令来从游标中读取数据,即只能从结果集第一行按顺序地每次读取一行,由于不能使用FIRST、LAST、PRIOR,所以无法回滚读取以前的数据。如果选择了SCROLL选项,则可能使用所有的FETCH操作。
当使用MS SQLServer的扩展语法时,必须注意以下约定:
•如果定义了FORWARD-ONLY或FAST_FORWARD选项,则只能使用FETCHNEXT命令;
•如果没有定义DYNAMIC,FORWARD_ONLY或FAST_FORWARD选项,而定义了KEYSET,STATIC或SCROLL中的任何一个,则可使用所有的FETCH操作;
•DYNAMICSCROLL游标支持所有的FETCH,选项但禁用ABSOLUTE选项。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
当游标被成功打开以后,就可以从游标中逐行地读取数据,以进行相关处理。从游标中读取数据主要使用FETCH命令。其语法规则为:
各参数含义说明如下:
•NEXT
返回结果集中当前行的下一行,并增加当前行数为返回行行数。如果FETCHNEXT是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行。
•PRIOR
返回结果集中当前行的前一行,并减少当前行数为返回行行数。如果FETCHPRIOR是第一次读取游标中数据,则无数据记录返回,并把游标位置设为第一行。
•FIRST
返回游标中第一行。
•LAST
返回游标中的最后一行。
•ABSOLUTE{n|@nvar}
如果n或@nvar为正数,则表示从游标中返回的数据行数。如果n或@nvar为负数,则返回游标内从最后一行数据算起的第n或@nvar行数据。若n或@nvar超过游标的数据子集范畴,则@@FETCH_STARS返回-1,在该情况下,如果n或@nvar为负数,则执行FETCHNEXT命令会得到第一行数据,如果n或@nvar为正值,执行FETCHPRIOR命令则会得到最后一行数据。n或@nvar可以是一固定值也可以是一smallint,tinyint或int类型的变量。
•RELATIVE{n|@nvar}
若n或@nvar为正数,则读取游标当前位置起向后的第n或@nvar行数据;如果n或@nvar为负数,则读取游标当前位置起向前的第n或@nvar行数据。若n或@nvar超过游标的数据子集范畴,则@@FETCH_STARS返回-1,在该情况下,如果n或@nvar为负数,则执行FETCHNEXT命令则会得到第一行数据;如果n或@nvar为正值,执行FETCHPRIOR命令则会得到最后一行数据。n或@nvar可以是一固定值也可以是一smallint,tinyint或int类型的变量。
•INTO@variable_name[,...n]
允许将使用FETCH命令读取的数据存放在多个变量中。在变量行中的每个变量必须与游标结果集中相应的列相对应,每一变量的数据类型也要与游标中数据列的数据类型相匹配。
@@FETCH_STATUS全局变量返回上次执行FETCH命令的状态。在每次用FETCH从游标中读取数据时,都应检查该变量,以确定上次FETCH操作是否成功,来决定如何进行下一步处理。@@FETCH_STATUS变量有三个不同的返回值,如表13-2。
在使用FETCH命令从游标中读取数据时,应该注意以下的情况:
当使用SQL-92语法来声明一个游标时,没有选择SCROLL选项时,只能使用FETCHNEXT命令来从游标中读取数据,即只能从结果集第一行按顺序地每次读取一行,由于不能使用FIRST、LAST、PRIOR,所以无法回滚读取以前的数据。如果选择了SCROLL选项,则可能使用所有的FETCH操作。
当使用MS SQLServer的扩展语法时,必须注意以下约定:
•如果定义了FORWARD-ONLY或FAST_FORWARD选项,则只能使用FETCHNEXT命令;
•如果没有定义DYNAMIC,FORWARD_ONLY或FAST_FORWARD选项,而定义了KEYSET,STATIC或SCROLL中的任何一个,则可使用所有的FETCH操作;
•DYNAMICSCROLL游标支持所有的FETCH,选项但禁用ABSOLUTE选项。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>