问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql中deallocate是什么

发布网友 发布时间:2022-10-31 02:59

我来回答

2个回答

热心网友 时间:2023-10-14 13:10

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 FOR
SELECT * FROM authors

游标名称与某个游标关联之后,该游标在释放之前不能用作相同作用域(GLOBAL 或 LOCAL)内另一个游标的名称。

游标变量使用下列两种方法之一与游标关联:

通过名称,使用 SET 语句将游标设置为游标变量:
DECLARE @MyCrsrRef CURSOR
SET @MyCrsrRef = abc

也可以不定义游标名称而创建游标并使其与变量关联:
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR LOCAL SCROLL FOR
SELECT * FROM titles

DEALLOCATE @cursor_variable_name 语句只删除对游标命名变量的引用。直到批处理、存储过程或触发器结束时变量离开作用域,才释放变量。在 DEALLOCATE @cursor_variable_name 语句之后,可以使用 SET 语句使变量与另一个游标关联。

USE pubs
GO
DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR LOCAL SCROLL FOR
SELECT * FROM titles

DEALLOCATE @MyCursor

SET @MyCursor = CURSOR LOCAL SCROLL FOR
SELECT * FROM sales
GO

不必显式释放游标变量。变量在离开作用域时被隐性释放。

权限
默认情况下,将 DEALLOCATE 权限授予任何有效用户。

示例
下面的脚本显示游标如何持续到最后的名称或持续到引用它们的变量已释放。

USE pubs
GO
-- Create and open a global named cursor that
-- is visible outside the batch.
DECLARE abc CURSOR GLOBAL SCROLL FOR
SELECT * FROM authors
OPEN abc
GO
-- Reference the named cursor with a cursor variable.
DECLARE @MyCrsrRef1 CURSOR
SET @MyCrsrRef1 = abc
-- Now deallocate the cursor reference.
DEALLOCATE @MyCrsrRef1
-- Cursor abc still exists.
FETCH NEXT FROM abc
GO
-- Reference the named cursor again.
DECLARE @MyCrsrRef2 CURSOR
SET @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 CURSOR
SET @MyCursor = CURSOR LOCAL SCROLL FOR
SELECT * FROM titles
-- The following statement deallocates the cursor
-- because no other variables reference it.
DEALLOCATE @MyCursor
GO

热心网友 时间:2023-10-14 13:11

踩下,回答完整
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
金莎丽的淋浴房用完之后开门水会流出来吗? 老家里的开门式淋浴房总是漏水,装修新家想换个质量好点的淋浴房,淋浴房... 淋浴房为何开门不畅?门关不紧怎么办? appa是什么意思英语? ...觉得比较好奇吧。是什么意思?好奇吗。有微信,没聊过 和新认识的男生聊什么跟男生可聊的20个话题 农行用什么pos机有积分 POS机刷卡积分是什么意思? 一个简短的民间小说 小米9.11发布会什么时候可以重播 java通过jdbc连接数据库的问题 我用的是SQLserver2005 下的驱动是2005的运行下列程序 报错说找不到驱动 sql2005自动备份除了创建维护计划和新建作业,还有没有其他办法?我创建维护和作业时会报错。 这个错误应该怎么解决 蔷薇的蔷五笔怎么打 怎样把自己玩到哭出来 吊扇调速器调速慢不下来怎么回事 谁那里有中国素材网的音效素材??要压缩后的,一个一个下载太麻烦~谢谢了,大神帮忙啊 推荐各种风格的背景循环音乐 最好是钢琴曲 做广播剧的素材要用 或者告诉我哪里能下载到音效包 谢谢 亲爱的,我想求一个拳打脚踢的那种音效,在音效网找半天不会下载= =,就是在小品里要用的那种,谢谢哈 2020年公司业务员工作自我总结 两台手机用一个手机号能注册两吗? 两个可以绑定一个手机号码吗 两个可以绑定一个手机号码吗 两个怎么绑定同一个手机号 福特电动版福克斯销量萎靡在美国二度降价 两个能同绑一个手机号吗? 一个人一个房间充斥着满满的孤单和无止境的想念 退休人员涨工资只给60岁以上的人员涨吗,你怎么看? 事业单位和国企退休,在缴交金额相同的前提下,退休金有差别吗? 拓宽自己的认知边界 sql 2008 维护失败,执行作业时报错,错误提示如下: 眼皮老是跳 - 寻找科学方法 可以用于眼部肌肉颤动的滴眼液是什么? 爱明眼镜怎么样 大连爱明眼视光诊所有限公司怎么样? 正常配制的dpd指示剂是什么颜色 龙虾的尾巴肉里的那条黑线是什么?可以吃吗?对身体有什么危害啊? 明天要高考,梦到蛇了 高中必修三历史题~~! 车上标志扁口型是哪个牌子的车? 椭圆上面开了个u型的口是什么车的标志 嘉陵金悍王发动机 嘉凌133发动机和本田CBF125比那个好《摩托车》 最终幻想电影有几部,每部叫什么名,男,女主角叫什么名? 最终幻想的电影? 最终幻想电影有几部?请按顺序列举 谢谢 比例放大器下面4个调节电位旋钮赴什么作用 钉钉员工隐藏手机号同事还能看得到 2个回答 - 手机拍照怎么显示日期和地点 农家乐可以打实习证明吗