Ich habe dynamisches SQL für viele Aufgaben verwendet und bin ständig auf dasselbe Problem gestoßen: Drucken von Werten von Variablen, die in der dynamischen T-SQL-Anweisung verwendet werden.
Z.B:
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
Die Druckergebnisse des obigen Codes lauten einfach "Select @Foobar". Gibt es eine Möglichkeit, die Werte und Variablennamen der ausgeführten SQL dynamisch zu drucken? Oder ersetzen Sie beim Drucken die Parameter durch ihre tatsächlichen Werte, damit SQL erneut ausgeführt werden kann?
Ich habe mit dem Erstellen einer oder zweier Funktionen gespielt, um etwas Ähnliches zu erreichen, aber mit Datentypkonvertierungen, Problemen beim Abschneiden von Mustervergleichen und nicht dynamischen Lösungen. Ich bin gespannt, wie andere Entwickler dieses Problem lösen, ohne jede Variable manuell zu drucken.