Eu usei o SQL dinâmico para muitas tarefas e continuamente enfrento o mesmo problema: Impressão de valores de variáveis usadas dentro da instrução Dynamic T-SQL.
POR EXEMPLO:
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
Os resultados de impressão do código acima são simplesmente "Selecione @Foobar". Existe alguma maneira de imprimir dinamicamente os valores e nomes de variáveis do sql que está sendo executado? Ou, ao imprimir, substitua os parâmetros pelos valores reais para que o SQL possa ser executado novamente?
Eu brinquei com a criação de uma função ou duas para realizar algo semelhante, mas com conversões de tipo de dados, problemas de truncamento de correspondência de padrões e soluções não dinâmicas. Estou curioso para saber como outros desenvolvedores resolvem esse problema sem imprimir manualmente cada variável manualmente.
fonte