Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sql事件探查器中存储过程的执行_Sql Server - Fatal编程技术网

Sql server sql事件探查器中存储过程的执行

Sql server sql事件探查器中存储过程的执行,sql-server,Sql Server,我有一个带有int输出参数的存储过程。如果运行SQL Server Profiler,通过一些.Net代码执行存储过程,并捕获RPC:Completed事件,则文本数据如下所示: declare @p1 int set @p1=13 exec spStoredProcedure @OutParam=@p1 output select @p1 为什么它看起来像是在执行存储过程之前获取输出参数的值 我发现答案是RPC:completedevent类。所以当时已经知道结果了。但我无法理解为什么在完成

我有一个带有int输出参数的存储过程。如果运行SQL Server Profiler,通过一些.Net代码执行存储过程,并捕获RPC:Completed事件,则文本数据如下所示:

declare @p1 int
set @p1=13
exec spStoredProcedure @OutParam=@p1 output
select @p1
为什么它看起来像是在执行存储过程之前获取输出参数的值


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

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

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