在sql profiler中执行存储过程

时间:2017-10-05 12:05:07

标签: sql-server

我有一个带有int输出参数的存储过程。如果我运行SQL Server Profiler,通过一些.Net代码执行存储过程,并捕获RPC:Completed事件,Text Data看起来像这样:

declare @p1 int
set @p1=13
exec spStoredProcedure @OutParam=@p1 output
select @p1

为什么它在执行存储过程之前看起来像是获取输出参数的值?

我发现答案是RPC:completed事件类。所以它已经知道当时的结果。但在完成RPC:completed事件后,我无法理解为什么exec语句存在。

1 个答案:

答案 0 :(得分:1)

您在Profiler(或扩展事件)跟踪中看到的RPC Completed TextData只是RPC请求的呈现,而不是SQL Server执行的实际语句。这有助于将文本复制/粘贴到SSMS窗口中,以便作为SQL批处理进行临时执行。

由于在RPC完成后已知实际输出值,因此跟踪文本使用实际值初始化参数变量。它可能更清楚,它在执行之前被初始化为NULL。