SqlServer中DEALLOCATE
DEALLOCATE删除游标引用。当释放最后的游标引用时,组成该游标的数据结构由 Microsoft® SQL Server™ 释放。 语法DEALLOCATE { { [ GLOBAL ] cursor_name } | @cursor_variable_name } 参数cursor_name 是已声明游标的名称。当全局和局部游标都以 cursor_name 作为它们的名称存在时,如果指定 GLOBAL,则 cursor_name 引用全局游标,如果未指定 GLOBAL,则 cursor_name 引用局部游标。 @cursor_variable_name 是 cursor 变量的名称。@cursor_variable_name 必须为 cursor 类型。 注释对游标进行操作的语句使用游标名称或游标变量引用游标。DEALLOCATE 删除游标与游标名称或游标变量之间的关联。如果一个名称或变量是最后引用游标的名称或变量,则将释放游标,游标使用的任何资源也随之释放。用于保护提取隔离的滚动锁在 DEALLOCATE 上释放。用于保护更新(包括通过游标进行的定位更新)的事务锁一直到事务结束才释放。 DECLARE CURSOR 语句分配游标并使其与游标名称关联: DECLARE abc SCROLL CURSOR FORSELECT * FROM authors 游标名称与某个游标关联之后,该游标在释放之前不能用作相同作用域(GLOBAL 或 LOCAL)内另一个游标的名称。 游标变量使用下列两种方法之一与游标关联: 通过名称,使用 SET 语句将游标设置为游标变量: DECLARE @MyCrsrRef CURSORSET @MyCrsrRef = abc 也可以不定义游标名称而创建游标并使其与变量关联: DECLARE @MyCursor CURSORSET @MyCursor = CURSOR LOCAL SCROLL FORSELECT * FROM titles DEALLOCATE @cursor_variable_name 语句只删除对游标命名变量的引用。直到批处理、存储过程或触发器结束时变量离开作用域,才释放变量。在 DEALLOCATE @cursor_variable_name 语句之后,可以使用 SET 语句使变量与另一个游标关联。 USE pubsGODECLARE @MyCursor CURSORSET @MyCursor = CURSOR LOCAL SCROLL FORSELECT * FROM titles DEALLOCATE @MyCursor SET @MyCursor = CURSOR LOCAL SCROLL FORSELECT * FROM salesGO 不必显式释放游标变量。变量在离开作用域时被隐性释放。 权限默认情况下,将 DEALLOCATE 权限授予任何有效用户。 示例下面的脚本显示游标如何持续到最后的名称或持续到引用它们的变量已释放。 USE pubsGO-- Create and open a global named cursor that-- is visible outside the batch.DECLARE abc CURSOR GLOBAL SCROLL FORSELECT * FROM authorsOPEN abcGO-- Reference the named cursor with a cursor variable.DECLARE @MyCrsrRef1 CURSORSET @MyCrsrRef1 = abc-- Now deallocate the cursor reference.DEALLOCATE @MyCrsrRef1-- Cursor abc still exists.FETCH NEXT FROM abcGO-- Reference the named cursor again.DECLARE @MyCrsrRef2 CURSORSET @MyCrsrRef2 = abc-- Now deallocate cursor name abc.DEALLOCATE abc-- Cursor still exists, referenced by @MyCrsrRef2.FETCH NEXT FROM @MyCrsrRef2-- Cursor finally is deallocated when last referencing-- variable goes out of scope at the end of the batch.GO-- Create an unnamed cursor.DECLARE @MyCursor CURSORSET @MyCursor = CURSOR LOCAL SCROLL FORSELECT * FROM titles-- The following statement deallocates the cursor-- because no other variables reference it.DEALLOCATE @MyCursorGO
SqlServer中DEALLOCATE相关推荐
- 把sqlserver中存储过程改写到oracle中
一同学叫我帮忙改存储过程sqlserver----->oralce数据中: sqlserver中存储过程: SET QUOTED_IDENTIFIER ON GO SET ANSI_N ...
- 简单介绍SQLserver中的declare变量用法
这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...
- sqlserver中能用when_sqlserver中if语句顶替when.case.语句
sqlserver中if语句替代when...case..语句 create table Employees ( EmployeeID char(6) primary key not null, Na ...
- 关于Sqlserver中 BCP命令,实现数据导出功能。
关于Sqlserver中 BCP命令,实现数据导出功能. exec master..xp_cmdshell 'bcp "select 账号 ,姓名, 账号 from datat.dbo.个人 ...
- SQLSERVER中统计所有表的记录数
SQLSERVER中统计所有表的记录数 利用系统索引表sysindexes中索引ID indid<1的行中的rows列存有该表的行数这一特点. 方法是利用隐藏未公开的系统存储过程sp_MS ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
原文地址:http://www.cnblogs.com/marvin/p/HowCanIHandleBigDataBySQLServer.html 首先声明,我只是个程序员,不是专业的DBA,以下这篇 ...
- SQLServer中使用Split功能分割字符串
一般的开发语言中,都有Split函数,可以将某个字符串按照分隔符进行分割,返回一个数组,非常方便. 但在SQLServer中,却没有默认提供Split函数,不过总有解决方案,以下是某大牛写的,比起网上 ...
- SQLSERVER中的网络配置
关于sqlserver中的网络配置,以前也用sqlserver2005做过东西,有时连接出错时,不是baidu就是google,对于这些常见的东西,一点都不明白是什么意思,惭愧啊,今天看了本书,写的不 ...
- sqlserver中,如果正确得到中文的长度
sqlserver中,如果正确得到中文的长度: len('wangzhq')=7 len('代码')=2 正确: data ...
最新文章
- 大数据分析之Hadoop
- CentOS下禁止防火墙
- Oracle数据库管理
- 欢迎与我一起交流安全管理平台
- 最新的Windows phone Developer tools RTW 发布了
- 镶嵌至新栅格ArcGIS出现send to mail闪退情况的解决方法
- C++_类和对象_对象特性_构造函数的分类以及调用---C++语言工作笔记041
- eve星战前夜登录提示服务器维护中,EVE星战前夜进不去怎么办 游戏进不去问题解决方法...
- SAP License:家庭主妇与ERP
- 意外发现一个很不错的涂鸦作者
- 如何高效和快乐的学习RS和GIS知识
- 从月薪3000到月薪过万:做什么工作才能过上想要的生活
- 安卓手机如何投屏mac苹果电脑上面?
- TensorFlow Session 中关于 GPU 的配置项解析 ——转自 慢慢学TensorFlow 微信公众号
- 360云盘修改存储目录技巧
- python预测你的小孩身高_儿童身高预测方法
- 推荐系统学习笔记召回策略之基于内容召回
- 国际会议latex/overleaf模板
- pic12f508 c 语言教程,pic12f508中文资料
- 架构成长之路 | 图解分布式共识算法Paxos教会协议