首 页
网络学院
视频教程
资源下载
HOT
实例教程
图文教程
专题中心
学习社区
繁體中文
当前位置:
首页
>
图文教程
>
数据库
>
MSSQL
> SQL Server数据库技术(85)
MSSQL
细化解析:SQL Server数据库的集群设计
解析SQL server与asp 互操作的时间处理
深入浅出SQL嵌套SELECT语句
如何制定自己的SQL Server 2000触发器
帮你完全了解SQL Server 2000视图问题
实例解析用SQL Server处理物料清单规则
SQL Server 2005 数据库镜像简单介绍
从SQL Server备份文件导入现存数据库
分析 SQL Server 的内存为何不断增加
SQL Server数据仓库相关概念及构建流程
如何用VB存取SQL Server中的图像数据
精华推荐:SQL Server的空值处理策略
客户端备份和恢复MSSQL Server数据库
VB实现SQL Server 2000存储过程调用
改善SQL Server数据库的内存管理方法
SQL Server 数据挖掘在商业智能中的应用
影响SQL Server性能的关键三个方面
SQL Server中单引号的两种处理技巧
SQL Server 2000中生成XML的小技巧
SQL Server跟踪数据实现索引优化向导
No.
«
‹
55
56
57
58
›
»
技术文章搜索
关键字
MSSQL 中的 SQL Server数据库技术(85)
出处:
互联网
整理:
软晨网(RuanChen.com)
发布:
2009-10-30
浏览: 103 ::
收藏到网摘: n/a
SQL Server数据库技术(84)
SQL Server数据库技术(86)
13.5.1 关闭游标
1、使用CLOSE 命令关闭游标
在处理完游标中数据之后必须关闭游标来释放数据结果集和定位于数据记录上的锁。CLOSE 语句关闭游标,但不释放游标占用的数据结构。如果准备在随后的使用中再次打开游标,则应使用CLOSE 命令。其关闭游标的语法规则为:
CLOSE { { [GLOBAL] cursor_name } | cursor_variable_name }
2、自动关闭游标
我们已经了解到游标可应用在存储过程、触发器和Transact_SQL 脚本中。如果在声明游标与释放游标之间使用了事务结构,则在结束事务时游标会自动关闭。其具体的情况如下所示:
(1)、声明一个游标
(2)、打开游标
(3)、读取游标
(4)、BEGIN TRANSATION
(5)、数据处理
(6)、COMMIT TRANSATION
(7)、回到步骤3
在这样的应用环境中。当从游标中读取一条数据记录进行以BEGIN TRANSATION为开头,COMMIT TRANSATION 或ROLLBACK 为结束的事务处理时,在程序开始运行后,第一行数据能够被正确返回,经由步骤7, 程序回到步骤3, 读取游标的下一行,此时常会发现游标未打开的错误信息。其原因就在于当一个事务结束时,不管其是以COMMIT TRANSATION 还是以ROLLBACK TRANSATION 结束,MS SQL SERVER 都会自动关闭游标,所以当继续从游标中读取数据时就会造成错误。
解决这种错误的方法就是使用SET 命令将CURSOR_CLOSE_ON_COMMIT 这一参数设置为OFF 状态。其目的就是让游标在事务结束时仍继续保持打开状态,而不会被关闭。使用SET 命令的格式为:
SET CURSOR_CLOSE_ON_COMMIT OFF
13.5.2 释放游标
在使用游标时,各种针对游标的操作或者引用游标名,或者引用指向游标的游标变量。当CLOSE 命令关闭游标时,并没有释放游标占用的数据结构。因此常使用DEALLOCATE 命令。通过该命令可以删除掉游标与游标名或游标变量之间的联系,并且释放游标占用的所有系统资源。其语法规则为:
DEALLOCATE { { [GLOBAL] cursor_name } | @cursor_variable_name}
各参数的含义参看13.3 打开游标一节。
当使用DEALLOCATE @cursor_variable_name 来删除游标时,游标变量并不会被释放,除非超过使用该游标的存储过程、触发器的范围(即游标的作用域)。
13.5.3 游标变量
游标变量是从MS SQL SERVER 7 版本才开始使用的一种新增数据类型。定义一个游标变量主要有两种方法。
首先我们先声明一个游标。
使用SET 语句将一游标赋值给游标变量:
将声明游标语句放在游标赋值语句中,如下所示:
例13-5: 下面给出一个具体完整的例子,在该例子中我们对DEALLOCATE 命令将有更加清晰的了解。
SQL Server数据库技术(84)
SQL Server数据库技术(86)
评论 (0)
All
登陆
还没注册?