当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(84)

MSSQL
利用 Case 敘述做 SQL 的動態排列
SQL Server 2000 与 SQL Server 7.0 版兼容性问题
数据变换和转换注意事项(SQL)
浅谈优化SQLServer数据库服务器内存配置的策略
SQL2000管理SQL7服务器出现TIMEOUT问题的解决
Web环境下MS SQL Server中数据的磁带备份与恢复
SQL Server 7.0与以前的版本相比,安全模式中最重要的
如何用sql语句修改数据表中字段,实现identity(100,1)
sqlserver7.0中如何在死锁产生时自动将其杀死
Sql server使用内存限定在多少最为合适
使用MS SQL7的LINKED SERVER(一)
使用MS SQL7的LINKED SERVER(二)
使用MS SQL7的LINKED SERVER(三)
使用MS SQL7的LINKED SERVER(四)
SQL--JOIN之完全用法
总结 SQL Server 中死锁产生的原因及解决办法
数据库正规化和设计技巧
IDENTITY列的一个有用操作
聚合函数
当SQL Server数据库崩溃时如何恢复?

MSSQL 中的 SQL Server数据库技术(84)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 73 ::
收藏到网摘: n/a

当游标被成功打开以后,就可以从游标中逐行地读取数据,以进行相关处理。从游标中读取数据主要使用FETCH 命令。其语法规则为:

    各参数含义说明如下:
•NEXT
返回结果集中当前行的下一行,并增加当前行数为返回行行数。如果FETCH NEXT是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行。
•PRIOR
返回结果集中当前行的前一行,并减少当前行数为返回行行数。如果FETCH PRIOR是第一次读取游标中数据,则无数据记录返回,并把游标位置设为第一行。
•FIRST
返回游标中第一行。
•LAST
返回游标中的最后一行。
•ABSOLUTE {n | @nvar}
如果n 或@nvar 为正数,则表示从游标中返回的数据行数。如果n 或@nvar 为负数,则返回游标内从最后一行数据算起的第n 或@nvar 行数据。若n 或@nvar 超过游标的数据子集范畴,则@@FETCH_STARS 返回-1, 在该情况下,如果n 或@nvar 为负数,则执行FETCH NEXT 命令会得到第一行数据,如果n 或@nvar为正值,执行FETCH PRIOR 命令则会得到最后一行数据。n 或@nvar 可以是一固定值也可以是一smallint, tinyint 或int 类型的变量。
•RELATIVE {n | @nvar}
若n 或@nvar 为正数,则读取游标当前位置起向后的第n 或@nvar 行数据;如果n 或@nvar 为负数,则读取游标当前位置起向前的第n 或@nvar 行数据。若n 或@nvar 超过游标的数据子集范畴,则@@FETCH_STARS 返回-1, 在该情况下,如果n 或@nvar 为负数,则执行FETCH NEXT 命令则会得到第一行数据;如果n 或@nvar 为正值,执行FETCH PRIOR 命令则会得到最后一行数据。n 或@nvar 可以是一固定值也可以是一smallint, tinyint或int 类型的变量。
•INTO @variable_name[,...n]
允许将使用FETCH 命令读取的数据存放在多个变量中。在变量行中的每个变量必须与游标结果集中相应的列相对应,每一变量的数据类型也要与游标中数据列的数据类型相匹配。
    @@FETCH_STATUS 全局变量返回上次执行FETCH 命令的状态。在每次用FETCH从游标中读取数据时,都应检查该变量,以确定上次FETCH 操作是否成功,来决定如何进行下一步处理。@@FETCH_STATUS 变量有三个不同的返回值,如表13-2。

    在使用FETCH 命令从游标中读取数据时,应该注意以下的情况:
    当使用SQL-92 语法来声明一个游标时,没有选择SCROLL 选项时,只能使用FETCH NEXT 命令来从游标中读取数据,即只能从结果集第一行按顺序地每次读取一行,由于不能使用FIRST、 LAST、 PRIOR, 所以无法回滚读取以前的数据。如果选择了SCROLL 选项,则可能使用所有的FETCH 操作。
    当使用MS SQL SERVER 的扩展语法时,必须注意以下约定:
•如果定义了FORWARD-ONLY 或FAST_FORWARD 选项,则只能使用FETCH NEXT命令;
•如果没有定义DYNAMIC, FORWARD_ONLY 或FAST_FORWARD 选项,而定义了KEYSET, STATIC 或SCROLL 中的任何一个,则可使用所有的FETCH 操作;
•DYNAMIC SCROLL 游标支持所有的FETCH, 选项但禁用ABSOLUTE 选项。