Como armazenar a saída PRINT do MSSQL para uma variável

Em um MS SQL 2008 R2, eu quero ser capaz de capturar a saída de mensagens em uma variável. Eu preciso executar um script em muitos bancos de dados. Capture a saída da mensagem (mensagens de print ou raiserror) e registre-a na tabela. Eu preciso fazer isso de dentro de um procedimento armazenado.

Para este script

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

Eu gostaria de ter

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

ou

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

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

Atualizar
Eu decidi ir com a sugestão @rs. Entrar em uma mesa é a maneira mais fácil para mim. Usando um SP para logar (para manter o código limpo), além de um pequeno regex para refatorar todos os meus scripts. A solução estará pronta para amanhã. Muito obrigado.

questionAnswers(1)

yourAnswerToTheQuestion