在某些 sql 服务器分析器 sql window 中,默认值是什么意思?

What does default mean in some sql server profiler sql window?

我 运行 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

这道题刚好出curiosity.I能从概念上理解set @p10=default在上下文中的意思。我认为这意味着因为在应用程序中为该输出参数执行过程时没有设置任何值,只需使用该参数在过程中的默认值。我不明白的是这个脚本的编写方式。如果您 运行 Management Studio 中的整个脚本,它会在关键字 'default' 附近生成错误语法不正确。 那么这里发生了什么?在这种情况下,SQL 服务器生成的只是一个 sudo 代码,而实际代码是其他代码,或者这实际上是以某种方式在 SQL 服务器执行引擎中获得 运行 的代码?

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