在 MS SQL 2008 R2 上,我希望能够将消息输出捕获到变量中。我需要在许多数据库上运行脚本。捕获消息输出(来自 print 或 raiserror 的消息)并将其记录到表中。我需要从存储过程内部执行此操作。
对于这个脚本
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
我想得到
My raised error
my print
或者
(60 row(s) affected)
My raised error
(21 row(s) affected)
my print
更新
我决定接受@rs 的建议。登录到表格对我来说是最简单的方法。使用 SP 记录(以保持代码干净),加上一个小的正则表达式来重构我的所有脚本。解决方案将在明天准备就绪。非常感谢。