如何从SQL Server存储过程捕获打印消息?

Jus*_*ner 4 sql t-sql sql-server stored-procedures

假设我有一个这样的存储过程:

begin try drop procedure test_print end try begin catch end catch;
go
create procedure test_print
as
begin
print 'Hello'
print 'World';
end
go

exec test_print
Run Code Online (Sandbox Code Playgroud)

如何捕获存储过程test_print中的打印消息并将其保存到变量中?

谢谢.

Rem*_*anu 5

你不能在T-SQL中.信息输出始终发送给客户端.因此,您必须是捕获它的客户端.一个简单的解决方法是从SQLCLR调用该过程.然后你可以简单地挂钩InfoMessage事件并获得calee输出.