Cómo almacenar el resultado de MSSQL PRINT en una variable

En un MS SQL 2008 R2, quiero poder capturar la salida de mensajes en una variable. Necesito ejecutar un script en muchas bases de datos. Capture la salida del mensaje (mensajes de impresión o raiserror) e inicie sesión en la tabla. Necesito hacer esto desde dentro de un procedimiento almacenado.

Para este guion

<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>

Me gustaría conseguir

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

o

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

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

Actualizar
He decidido seguir con la sugerencia de @rs. Iniciar sesión en una mesa es la forma más fácil para mí. Usar un SP para registrar (para mantener el código limpio), más una pequeña expresión regular para refactorizar todos mis scripts. La solución estará lista para mañana. Muchas gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta