sqlserver会话显示在执行的FETCH API_CURSOR00000xx语句是什么?


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

					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM