是否可以确定当前正在执行存储过程的哪一部分?

squ*_*man 5 sql-server stored-procedures sql-server-2008-r2 dmv trace

假设我有一个这样的存储过程(假设表模式很好):

CREATE PROCEDURE p_MyProc
AS

INSERT MyTable SELECT Col1 FROM Table1

INSERT MyTable SELECT Col2 FROM Table2

INSERT MyTable SELECT Col3 FROM Table3
Run Code Online (Sandbox Code Playgroud)

假设这些最终成为每次可能需要几分钟的大插入,是否可以确定当前在存储过程的上下文中运行的是哪一个?

我知道如何找到正在运行的存储过程,我只是想看看是否有办法获得更细化,而无需在其中添加 PRINT 或其他跟踪语句。有没有办法让语句显示在跟踪中?

Tho*_*ger 3

您可以跟踪SQL Server 跟踪扩展事件

您可以查看已完成的报表和/或批次,这应该为您提供所需的粒度。

SP:StmtCompleted 事件类