mssql获取当前实例所有游标语句

DECLARE @spid NVARCHAR(100)
DECLARE @SQL NVARCHAR(MAX)

DECLARE CurSPID CURSOR
FOR
SELECT [spid]
FROM sys.[sysprocesses]
WHERE [spid] >= 50

OPEN CurSPID
FETCH NEXT FROM CurSPID INTO @spid

WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = N'
SELECT cursors.session_id ,
cursors.properties ,
cursors.creation_time ,
cursors.is_open ,
text.text
FROM sys.dm_exec_cursors (' + @spid + ') cursors
CROSS APPLY sys.dm_exec_sql_text(cursors.sql_handle) text'
EXEC(@SQL)

FETCH NEXT FROM CurSPID INTO @spid
END
CLOSE CurSPID
DEALLOCATE CurSPID

posted @ 2018-06-21 15:31  奋斗史  阅读(121)  评论(0)    收藏  举报