My Life My Dream!

守信 求实 好学 力行
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

通过常用的两种方式,都没有看到原始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