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