在SQL Profiler中捕获了这个请求,它是从第三方应用程序发送的。它在做什么?
declare @p1 int
set @p1=180150003
declare @p3 int
set @p3=8
declare @p4 int
set @p4=1
declare @p5 int
set @p5=34
exec sp_ddopen @p1 output,N'sp_sproc_columns',@p3 output,@p4 output,@p5 output,N'some_stored_procedure_name',NULL,NULL,NULL
select @p1, @p3, @p4, @p5
编辑:根据我的最佳猜测:这是一个ODBC驱动程序,要求存储过程需要的参数。
这是sp_ddopen的源代码,显然。
编辑2:在执行之前设置@p参数是Sql Profiler的副作用。原始形式中,sp_ddopen将被调用,所有参数都为null,并且它们将返回所示的值。