一尘不染

是否有可能找出谁在SQL Server 2005中调用了存储过程

sql

是否有可能找出谁调用了存储过程?我正在使用以下查询来确定执行计数等,但无法确定正在调用哪个作业/触发器/进程。有什么想法吗?

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,

阅读 155

收藏
2021-05-23

共1个答案

一尘不染

使用Adam Machanic的Who is Active存储过程-
这将返回有关活动语句的各种信息,包括启动它们的用户。

2021-05-23