deallocate(sql中deallocate是什么)
本文目录
sql中deallocate是什么
DEALLOCATE删除游标引用。当释放最后的游标引用时,组成该游标的数据结构由 Microsoft® SQL Server™ 释放。语法DEALLOCATE { { 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 titlesDEALLOCATE @cursor_variable_name 语句只删除对游标命名变量的引用。直到批处理、存储过程或触发器结束时变量离开作用域,才释放变量。在 DEALLOCATE @cursor_variable_name 语句之后,可以使用 SET 语句使变量与另一个游标关联。USE pubsGODECLARE @MyCursor CURSORSET @MyCursor = CURSOR LOCAL SCROLL FORSELECT * FROM titlesDEALLOCATE @MyCursorSET @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
怎么理解c++primer中“运行deallocate之前调用destroy是用户的责任”
destroy效果上就是调用你已经声明的类的destructor。但是,请想想,为什么destructor被设计成可以自定义,我个人理解,当你想在释放内存前做一些操作,比如,你在设计一个网络访问的应用,释放内存前需要关闭一些网络设置相关的类。 这时候如果不用destroy,而直接用deallocate,那么就没有直接关闭网络设置的机会。所以,如果只是单一的类作为例子,deallocate是可以直接用的,而不是非得用完destroy再调用deallocate。
更多文章:
iphone飞行模式(苹果手机飞行模式和wifi同时关闭怎么弄)
2024年6月13日 06:48
黑莓note(为何三星Note8、黑莓Keyone和索尼被埋没了)
2024年9月21日 12:30
vivoxplay3s微信版本(vivoxplay3s为什么不能用微信运动)
2023年7月20日 11:20
荣耀magic2手机黑屏(我的手机是华为荣耀magic2,摔了一下手机就黑屏了,按电源键怎么的也不起作用,屏幕无显示)
2024年7月24日 13:30
爱科技c3000值得买吗(铁三角at2035和AKG爱科技c3000哪个麦克风效果好)
2023年11月3日 09:40
手机连上wifi不能上网(为什么手机连上wifi却无法上网)
2024年10月10日 18:45
三星note8换屏教程(三星note8玻璃屏外屏左上端边上碎了,不换玻璃外屏怎么处理)
2023年12月20日 05:05
三星note 8刷机最新系统(三星note8可以刷刷系统吗)
2024年7月10日 00:20
手机+王志文(《手机》严守一谁演的 严守一扮演者王志文资料)
2024年7月19日 06:34
索尼a6400和佳能m6二代(佳能m6二代和索尼a6400哪个好)
2024年1月30日 20:25
小米5g手机芯片图片(打造5G时代的AIoT智能互联 小米路由AX3600评测)
2024年5月16日 12:55
诺基亚n79键盘裂(我的诺基亚N79摔了一下,键盘的2、6、7、0就失灵,按不了了!关机重启还是一样按不了!怎么办)
2024年9月6日 02:40