sql - 是否可以找出谁调用了 SQL Server 2005 中的存储过程

标签 sql sql-server 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,

最佳答案

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

关于sql - 是否可以找出谁调用了 SQL Server 2005 中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146715/

相关文章:

MYSQL 查询不工作,对于这种情况是否有更简单的查询?

sql - 使用另外两个列填充一个新的 SQL 列

python - SQL Server python机器学习无法访问文件系统

c# - 如何在 Entity Framework 中完全锁定一行

sql-server-2005 - 用于查找 1-N 关系中第一个(按日期)关联记录的有效 SQL 查询

c# - 是否可以使用 linq 运行查询来搜索一段时间?

sql - 棘手的 SQL 查询,也许某种连接可以工作?

sql - 返回动态列集

sql-server - MS SQL Server 中的自定义聚合函数?

sql - 获取插入/修改行的 DATETIME