WEB开发网
开发学院数据库MSSQL Server MS SQL入门基础:声明游标 阅读

MS SQL入门基础:声明游标

 2007-01-03 09:20:44 来源:WEB开发网   
核心提示: 选项指明在从游标中提取数据记录时,只能按照从第一行到最后一行的顺序,MS SQL入门基础:声明游标(3),此时只能选用FETCH NEXT 操作,除非使用STATIC,@@FETCH_STATUS 的返回值为-2; 而且无法通过游标来读取新插入的数据,但是如果使用了WHERE CURREN

选项指明在从游标中提取数据记录时,只能按照从第一行到最后一行的顺序,此时只能选用FETCH NEXT 操作。除非使用STATIC, KEYSET 和DYNAMIC 关键字,否则如果未指明是使用FORWARD_ONLY 还是使用SCROLL, 那么FORWARD_ONLY 将成为缺省选项,因为若使用STATIC KEYSET 和DYNAMIC 关键字,则变成了SCROLL 游标。另外如果使用了FORWARD_ONLY, 便不能使用FAST_FORWARD。 STATIC

选项的含义与INSENSITIVE 选项一样,MS SQL SERVER 会将游标定义所选取出来的数据记录存放在一临时表内(建立在tempdb 数据库下)。对该游标的读取操作皆由临时表来应答。因此对基本表的修改并不影响游标中的数据,即游标不会随着基本表内容的

改变而改变,同时也无法通过游标来更新基本表。 KEYSET

指出当游标被打开时,游标中列的顺序是固定的,并且MS SQL SERVER 会在tempdb内建立一个表,该表即为KEYSET KEYSET 的键值可惟一识别游标中的某行数据。当游标拥有者或其它用户对基本表中的非键值数据进行修改时,这种变化能够反映到游标中,所以游标用户或所有者可以通过滚动游标提限这些数据。

当其它用户增加一条新的符合所定义的游标范围的数据时,无法由此游标读到该数据。因为Transact-SQL 服务器游标不支持INSERT 语句。

如果在游标中的某一行被删除掉,那么当通过游标来提取该删除行时,@@FETCH_STATUS 的返回值为-2。 @@FETCH_STATUS 是用来判断读取游标是否成功的系统全局变量。

由于更新操作包括两部分:删除原数据插入新数据,所以如果读取原数据,@@FETCH_STATUS 的返回值为-2; 而且无法通过游标来读取新插入的数据。但是如果使用了WHERE CURRENT OF 子句时,该新插入行数据便是可见的。

上一页  1 2 3 4  下一页

Tags:MS SQL 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接