是否有可能找出誰叫存儲過程? ,我使用下面的查詢來確定執行計數等,但我無法確定哪個作業/觸發器/進程正在調用它。關於它的任何想法請是否有可能找出誰在sql server 2005中調用存儲過程
SELECT a.execution_count ,OBJECT_NAME(objectid) Name,
(CASE WHEN a.statement_end_offset = -1
THEN
len(convert(nvarchar(max), b.text)) * 2
ELSE
a.statement_end_offset
END - a.statement_start_offset)/2) ,b.dbid ,dbname = db_name(b.dbid) , b.objectid
,a.creation_time,a.last_execution_time,a.*
FROM sys.dm_exec_query_stats a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) as b
WHERE OBJECT_NAME(objectid) = 'Rebuild_Indexes' ORDER BY a.last_execution_time
ESCquery_text = SUBSTRING(b.text,a.statement_start_offset/2,
什麼是_who_? '@@ SPID'和'ORIGINAL_LOGIN()'是可用的。你想通過鍵盤查看指紋,看看誰真的啓動了應用程序? 'select * from sys.dm_exec_connections as EC inner join sys.dm_exec_sessions as ES on ES.session_id = EC.session_id where EC.session_id = @@ SPID'? – HABO 2013-04-22 12:54:42
你會在答案中看到一個常見的主題,那就是,如果沒有記錄所有內容,就不可能看到誰存儲過程;相反,你可以看到誰正在呼叫它。 – 2013-04-22 19:59:05