在某些 sql server profiler sql 窗口中,默认值是啥意思?

Posted

技术标签:

【中文标题】在某些 sql server profiler sql 窗口中,默认值是啥意思?【英文标题】:What does default mean in some sql server profiler sql window?在某些 sql server profiler sql 窗口中,默认值是什么意思? 【发布时间】: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|s-s-rS',@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 执行引擎中以某种方式运行的代码?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在某些 sql server profiler sql 窗口中,默认值是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server 2008客户端安装sql profiler

sql server 2012 profiler打开2016的profiler

如何创建跟踪 (SQL Server Profiler)

sql server profiler 是啥文件

SQL Server Profiler常用功能

SQL Server Profiler的简单使用