万梅资源网 Design By www.ubjie.com
一直以来对SQL SERVER的游标都不怎么感冒,也很少使用SQL Server里面的游标,前几天有一位网友问如何检查数据库里面没有释放的游标,觉得有点意思,就测试验证了一下,顺便整理于此。
会话1:我们模拟一个应用程序或脚本,在打开游标后,忘记关闭、释放游标。
DECLARE Cursor_Test CURSOR FORSELECT * FROM dbo.TEST;OPEN Cursor_Test;
此时如果我们如何检查数据库里面没有释放的游标?其实SQL SERVER提供了一个动态管理函数sys.dm_exec_cursors,它返回有关在各种数据库中打开的游标的信息。
SELECT * FROM sys.dm_exec_cursors(0)
关于该动态管理函数返回的表的各个字段的解释,可以参考MSDN文档。不同数据库版有所区别。如果要查询没有关闭的游标,则需要对字段is_open进行过滤(指定游标是否处于打开状态。1为打开,0表示关闭)
会话2:查看没有关闭的游标
SELECT session_id , cursor_id , name , creation_time , is_openFROM sys.dm_exec_cursors(0)WHERE is_open = 1;
如果想查看已经关闭,但是没有释放的游标,可以在会话1执行关闭游标命令CLOSE Cursor_Test;但是不释放游标,如下截图所示
另外,可以用下面SQL查看服务器上打开时间超过指定时间(1 小时)的游标的信息,根据需要自行调整查询条件。
SELECT creation_time ,cursor_id ,name ,c.session_id ,login_name ,c.creation_time ,c.is_openFROM sys.dm_exec_cursors (0) AS c JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_idWHERE DATEDIFF(hh, c.creation_time, GETDATE()) > 1;GO
以上所述是小编给大家介绍的SQL Server查看未释放游标的方法,希望对大家有所帮助!
万梅资源网 Design By www.ubjie.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
万梅资源网 Design By www.ubjie.com
暂无评论...
![](/images/logos.png)
www.ubjie.com
万梅资源网
19,976影音资源
44,792技术资源
1,817软件资源
451,128站长资源
最新文章
友情链接
杰晶网络
DDR爱好者之家
桃源资源网
杰网资源
富贵资源网
南强小屋
铁雪资源网
幽灵资源网
万梅资源网
狼山资源网
白云岛资源网
昆仑资源网
相思资源网
明霞山资源网
内蒙古资源网
黑松山资源网
茶园资源网
饿虎岗资源网
大旗谷资源网
常春岛资源网
岱庙资源网
兴国资源网
快活林资源网
蝙蝠岛资源网
帝王谷资源网
白云城资源网
伏龙阁资源网
清风细雨楼
天枫庄资源网
圆月山庄资源网
无争山庄资源网
神水资源网
移花宫资源网
神剑山庄资源网
无为清净楼资源网
金钱帮资源网
丐帮资源网
华山资源网
极乐门资源网
小李飞刀资源网
凤求凰客栈
风云阁资源网
金狮镖局
鸳鸯亭资源网
千金楼资源网
更多链接
万梅资源网 Design By www.ubjie.com