OPEN { { [GLOBAL] cursor_name } | cursor_variable_name}
各参数说明如下:
• GLOBAL
定义游标为一全局游标。
• cursor_name
为声明的游标名字。假如一个全局游标和一个局部游标都使用同一个游标名,则假如使用GLOBAL 便表明其为全局游标,否则表明其为局部游标。
• cursor_variable_name
为游标变量。当打开一个游标后时,MS SQL SERVER 首先检查声明游标的语法是否正确,假如游标声明中有变量,则将变量值带入。
在打开游标时,假如游标声明语句中使用了INSENSITIVE 或STATIC 保留字,则OPEN产生一个临时表来存放结果集;假如在结果集中任何一行数据的大小超过MS SQL SERVER定义的最大行尺寸时,OPEN 命令将失败;假如声明游标时作用了KEYSET 选项,则OPEN 产生一个临时表来存放键值。任何的临时表都存在tempdb 数据库中。
在游标被成功打开之后,@@CURSOR_ROWS 全局变量将用来记录游标内数据行数。为了提高性能,MS SQL SERVER 允许以异步方式从基础表向KEYSET 或静态游标读入数据,即假如MS SQL SERVER 的查询优化器估计从基础表中返回给游标的数据行已超过sp_configure cursor threshold 参数值,则MS SQL SERVER 将启动另外一个单独的线程来继续从基础表中读入符合游标定义的数据行,此时能够从游标。中读取数据进行处理而不必等到任何的符合游标定义的数据行都从基础表中读入游标 @@CURSOR_ROWS 变量存储的正是在调用@@CURSOR_ROWS 时,游标已从基础表读入的数据行。@@CURSOR_ROWS 的返回值有以下四个,如表13-1 所示。
假如所打开的游标在声明时带有SCROLL 或INSENSITIVE 保留字,那么@@CURSOR_ROWS 的值为正数且为该游标的任何数据行。假如未加上这两个保留字中的一个,则@@CURSOR_ROWS 的值为-1, 说明该游标内只有一条数据记录。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




