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

MSSQL
详解SQL Server中数据库快照工作原理
VB应用程序访问SQL Server的常用方法
SQL Server特殊磁带备份及恢复设计
基于SQL Server的C/S数据库应用系统
如何实现SQL Server 2005快速Web分页
关于SQL Server数据库中转储设备分析
从外到内提高SQL Server数据库性能
准备SQL Server 2008透明数据加密
快速升级MySQL系统表
解析:在SQL Server下数据库链接的使用
细化解析:SQL Server 2005 数据库镜像
轻松接触SQL Server 2000实例的命名规则
SQL提供的进行数据传输的实用程序—BCP
SQL Server 2000 作数据库服务器的优点
解析:正确的理解SQL Server和XML支持
轻松了解数据库计算机的概念和发展方向
解析SQL Server数据体系和应用程序逻辑
SQL进行排序、分组、统计的10个新技巧
教你怎样打造SQL Server2000的安全策略
解析SQL Server 2005 溢用之:合并列值

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 102 ::
收藏到网摘: 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, 说明该游标内只有一条数据记录。