J'ai utilisé SQL dynamique pour de nombreuses tâches et je rencontre continuellement le même problème: l'impression des valeurs des variables utilisées dans l'instruction Dynamic T-SQL.
PAR EXEMPLE:
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
Les résultats d'impression du code ci-dessus sont simplement "Select @Foobar". Existe-t-il un moyen d'imprimer dynamiquement les valeurs et les noms de variables du SQL en cours d'exécution? Ou lorsque vous effectuez l'impression, remplacez les paramètres par leurs valeurs réelles afin que le SQL soit réexécutable?
J'ai joué avec la création d'une fonction ou deux pour accomplir quelque chose de similaire, mais avec des conversions de types de données, des problèmes de troncature de correspondance de motifs et des solutions non dynamiques. Je suis curieux de voir comment les autres développeurs résolvent ce problème sans imprimer manuellement chaque variable manuellement.
la source