Sql server 这是干什么的?
从第三方应用程序发送的SQL事件探查器中捕获了此信息。它在干什么Sql server 这是干什么的?,sql-server,sql-server-2005,stored-procedures,Sql Server,Sql Server 2005,Stored Procedures,从第三方应用程序发送的SQL事件探查器中捕获了此信息。它在干什么 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_n
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驱动程序,要求存储过程需要的参数。显然
edit2:exec之前@p参数的设置显然是错误的。在其原始形式中,调用sp_ddopen时,所有参数都为null,并且它们将返回显示的值。从
sp_helptext sp_ddopen
它看起来像是API(如ODBC/OLEDB)之间的版本转换层,用于各种系统存储过程
如果您的情况是这样的,我猜应用程序是版本独立地调用sp\u存储过程列
,以嗅探某些存储过程的原型
名称根据MS(请参阅)这是一个未正式记录的内部存储过程。。。它在内部数据库目录(数据库对象的元数据)上运行,例如,当您/某些应用程序调用SQLTables
或SQLTablesW
时,SQL Server ODBC驱动程序会使用它(请参见示例)
因此,我认为你的猜测是正确的:——)