Speichern der MSSQL PRINT-Ausgabe in einer Variablen

Auf einem MS SQL 2008 R2 möchte ich in der Lage sein, die ausgegebenen Nachrichten in einer Variablen abzufangen. Ich muss ein Skript für viele Datenbanken ausführen. Fangen Sie die Nachrichtenausgabe ab (Nachrichten von print oder raiserror) und melden Sie sie in der Tabelle an. Ich muss dies innerhalb einer gespeicherten Prozedur tun.

Für dieses Skript

<code>Declare @sqlscript nvarchar(500)

Set @sqlscript = 
'select * from sys.objects
raiserror (''My raised error'', 10,1)
select * from sys.schemas
print ''my print'''

EXEC sp_executesql @sqlscript
</code>

Ich hätte gern

<code>My raised error    
my print
</code>

oder

<code>(60 row(s) affected)  
My raised error

(21 row(s) affected)  
my print
</code>

Aktualisieren
Ich habe mich für @rs Vorschlag entschieden. Sich in einen Tisch einzuloggen ist für mich der einfachste Weg. Verwenden eines SP zum Protokollieren (um den Code sauber zu halten) sowie eines kleinen regulären Ausdrucks zum Umgestalten aller meiner Skripts. Die Lösung ist für morgen bereit. Danke vielmals.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage