【问题标题】:How can I capture the print message from a SQL Server stored procedure? [duplicate]如何从 SQL Server 存储过程中捕获打印消息? [复制]
【发布时间】:2013-03-08 10:51:56
【问题描述】:

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

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 中的打印消息并将其保存到变量中?

谢谢。

【问题讨论】:

  • 看看这个之前的答案stackoverflow.com/questions/1589466/… - 基本上你需要使用OUTPUT clasue。
  • 我知道 OUTPUT 子句。我的情况是我不能修改存储过程,我只能调用它。存储过程在其中使用了很多 PRINT 语句。如何从 PRINT 语句中获取这些字符串?
  • 我强烈不同意将这个问题标记为重复,因为提到的重复问题没有回答它。提到的问题在.NET 中给出了解决方案,而不是在 sql 中。这个问题可能没有答案,但它是一个有效的问题,应该独立存在。

标签: sql sql-server tsql stored-procedures


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2012-05-04
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 2011-01-02
相关资源
最近更新 更多