sqlserver会话显示在执行的FETCH API_CURSOR00000xx语句是什么?
Posted on 2021-02-22 21:43 召冠 阅读(1537) 评论(0) 编辑 收藏 举报通过常用的两种方式,都没有看到原始SQL脚本
select t.spid, t.kpid, t.blocked, t.status, t.lastwaittype, t.waitresource, t.waittime, t.open_tran , DB_NAME(t.dbid) DbName, t.last_batch, t.loginame, t.program_name, t.hostname, t.hostprocess , t.cmd, t.stmt_start, t.stmt_end, t.request_id, dc.text from master.sys.sysprocesses t outer apply master.sys.dm_exec_sql_text(t.sql_handle) dc where t.spid = 53
SELECT t.text FROM sys.dm_exec_connections c CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t WHERE session_id = 53
通过DBCC INPUTBUFFER(spid),返回结果也是:FETCH API_CURSOR00000xx
那么还有没有其他的视图来帮助我们呢?我们可以使用sys.dm_exec_cursors视图,将spid代入进去
SELECT c.session_id, c.properties, c.creation_time, c.is_open, t.text FROM sys.dm_exec_cursors(53) c CROSS APPLY sys.dm_exec_sql_text (c.sql_handle) t
参考:
https://www.cnblogs.com/lyhabc/p/3764905.html