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.