某些 sql 服务器探查器 sql 窗口中的默认值是什么意思



我运行了sql服务器探查器,对于一个sql状态,我可以看到以下脚本:

declare @p9 varchar(8000)
set @p9=NULL
declare @p10 smallint
set @p10=default
declare @p11 bit
set @p11=default
declare @p12 int
set @p12=default
exec spgConfigValue @FullKey='System|MessageLog|Record|SSRS',@Key1=default,@Key2=default,@Key3=default,@Key4=default,@Key5=default,@DataType=default,@DefaultValue='True',@Value=@p9 output,@RecordExistsFlag=@p10 output,@ValueBit=@p11 output,@ValueInt=@p12 output,@PortalStudentID=default,@PortalUserID=default
select @p9, @p10, @p11, @p12

这个问题只是出于好奇。我可以从概念上理解上下文中的设置 @p10=default 的含义。我认为这意味着因为在应用程序中为该输出参数执行 proc 时没有设置任何值,只需在该参数的 proc 中使用默认值即可。我不明白的是这个脚本的编写方式。如果您在管理工作室中运行整个脚本,则会在关键字"default"附近生成错误语法不正确。那么这里发生了什么?在这种情况下,SQL Server生成的只是一个sudo代码,而实际代码是其他东西,还是这实际上是以某种方式在SQLServer执行引擎中运行的代码?

对于 RPC 请求,您在探查器跟踪中看到的批处理文本实际上是从 TDS 协议流进行反向工程的,而不是应用程序发送的实际批处理文本。您是正确的,这基本上是伪代码,在这种情况下,语法对于作为即席查询执行无效。

相关内容

  • 没有找到相关文章

最新更新