怎样获得打开的游标信息

Keambala 2008-02-28 11:06:30
大家好, 有个问题想请教一下。
1.怎样查询当前数据库德游标信息,只知道有dm_exec_cursors(0)能返回游标的信息,不知道有没有什么其他方法可以得到游标信息
2。怎样实现当游标数达到一定数目是自动触发一个事件, 比如说,允许的最大数为4个,当有5个打开的游标时就记录下当前游标的信息
...全文
111 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Keambala 2008-03-06
  • 打赏
  • 举报
回复
问题1我应用了下面的查询
select * from sys.dm_exec_cursors(0) as A cross apply sys.dm_exec_sql_text(A.sql_handle)

之前没有注意到apply 的用途。
那么怎样才能实现当上面的结果集总数超过一定数额时触发一个事件?比如说当上面的查询语句count(*)>4时向表Cursorinfo中插入一条记录?
目前我用了一个Job每分钟查询一下,这种方法不是实时的,当在一分钟内有超出这个数目的Corsor打开和删除时就没有办法捕捉到。
希望大家帮忙解决这个问题。
Keambala 2008-02-29
  • 打赏
  • 举报
回复
1 . 可能是我还没有说清楚,我想得到数据库所有游标的信息,比如说声明的代码,还有是在那个session中声明的,那个用户声明的,打开状态
ojuju10 2008-02-28
  • 打赏
  • 举报
回复


--SELECT @@CURSOR_ROWS;

USE AdventureWorks;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Contact;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO
Keambala 2008-02-28
  • 打赏
  • 举报
回复
自己顶一下 

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧