He usado SQL dinámico para muchas tareas y continuamente me encuentro con el mismo problema: imprimir valores de variables usadas dentro de la instrucción Dynamic T-SQL.
P.EJ:
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
Los resultados de impresión del código anterior son simplemente "Seleccionar @Foobar". ¿Hay alguna forma de imprimir dinámicamente los valores y nombres de variables del sql que se está ejecutando? ¿O al hacer la impresión, reemplazar los parámetros con sus valores reales para que el SQL se pueda volver a ejecutar?
He jugado con la creación de una o dos funciones para lograr algo similar, pero con conversiones de tipos de datos, problemas de truncamiento de coincidencia de patrones y soluciones no dinámicas. Tengo curiosidad por saber cómo otros desarrolladores resuelven este problema sin imprimir manualmente todas y cada una de las variables manualmente.