【发布时间】:2017-05-09 01:51:29
【问题描述】:
我运行了 sql server profiler,对于一个 sql statemnt,我可以看到以下脚本:
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
这个问题只是出于好奇。我可以从概念上理解 set @p10=default 在上下文中的含义。我认为这意味着因为在应用程序中为该输出参数执行 proc 时没有设置任何值,只需在该参数的 proc 中使用默认值。我不明白的是这个脚本的编写方式。如果您在管理工作室中运行整个脚本,则会在关键字“默认”附近生成错误语法错误。 那么这里发生了什么?在这种情况下,SQL Server 生成的只是一个 sudo 代码,而实际代码是其他代码,还是这真的是在 SQLServer 执行引擎中以某种方式运行的代码?
【问题讨论】:
标签: sql-server default sql-server-profiler