Что означает значение по умолчанию в некоторых окнах SQL Server Profiler?

Я запустил 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?

1 ответ

Решение

При запросе RPC текст пакета, который вы видите в трассировке профилировщика, фактически подвергается обратной обработке из потока протокола TDS, а не фактического текста пакета, отправляемого приложением. Вы правы, что это в основном псевдокод, и в этом случае синтаксис недопустим для выполнения в качестве специального запроса.

Другие вопросы по тегам