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

MSSQL
将表数据生成SQL脚本的存储过程和工具
初学者必读:经典的数据库记录分页代码
使用SQL Server 2008管理非结构化数据
利用索引提高SQL Server数据处理的效率
SQL Server数据库内存会不断增加的问题分析
面向对象设计过程中必须遵守的相关准则
SQL Server 2005如何设置多字段做关键字
SQL Server 2005数据库中表的递归查询
SQL Server中使用DTS设计器进行数据转移
在查询分析器理启动或停止SQL Agent服务
教你快速掌握SQL语言中游标的使用技巧
将SQL Server中所有表的列信息显示出来
使用SQL语句快速获取SQL Server数据字典
Sql Server 2005中的架构用户登录和角色
如何保存数据库连接参数代码及步骤详解
如何使用SQL Server数据库嵌套子查询
SQL Server从安装到建库为新手寻找捷径
课程讲解 如何使用SQL Server校勘功能
数据库理论:学习基于SQL数据库的算法
教你使用SQL Server数据库进行网络链接

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


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

   打开游标游标在声明以后,如果要从游标中读取数据必须打开游标。打开一个Transact-SQL服务器游标使用OPEN 命令,其语法规则为:
 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, 说明该游标内只有一条数据记录。