Я использовал динамический SQL для многих задач и постоянно сталкиваюсь с одной и той же проблемой: печать значений переменных, используемых внутри инструкции Dynamic T-SQL.
НАПРИМЕР:
Declare @SQL nvarchar(max), @Params nvarchar(max), @DebugMode bit, @Foobar int
select @DebugMode=1,@Foobar=364556423
set @SQL='Select @Foobar'
set @Params=N'@Foobar int'
if @DebugMode=1 print @SQL
exec sp_executeSQL @SQL,@Params
,@Foobar=@Foobar
Результаты печати приведенного выше кода просто "Выберите @Foobar". Есть ли способ динамически печатать значения и имена переменных выполняемого SQL? Или при выполнении печати замените параметры их фактическими значениями, чтобы SQL можно было повторно запускать?
Я играл с созданием одной или двух функций для выполнения чего-то похожего, но с преобразованиями типов данных, проблемами усечения соответствия шаблонов и не динамическими решениями. Мне любопытно, как другие разработчики решают эту проблему, не печатая вручную каждую переменную вручную.