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

时间:2013-03-08 10:51:57

标签: sql sql-server tsql 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

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

感谢。

1 个答案:

答案 0 :(得分:5)

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