在MS SQL 2008R2上,我希望能够将消息输出捕获到变量中。我需要在许多数据库上运行脚本。捕获消息输出(来自print或raiserror的消息)并将其记录到表中。我需要从存储过程中执行此操作。
对于此html" target="_blank">脚本
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进行日志记录(以保持代码干净),再加上一个小的正则表达式来重构我的所有脚本。该解决方案将在明天准备就绪。非常感谢。
您可能会使用CLR和类似的技术:
http://blogs.msdn.com/b/mattm/archive/2007/09/13/capture-print-messages-from-
a-stored-
procedure.aspx
但是最好的选择是将EXEC放入一个只有一个varchar列的临时表中:
http://msdn.microsoft.com/zh-
CN/library/aa175921%28v=sql.80%29.aspx
问题内容: 我在JavaScript中有以下代码: PHP代码:- 注意:我不希望在表单提交中使用它。我在JavaScript中有一些逻辑,我想在同一PHP页面中使用它…请让我知道我该怎么做。 问题答案: 您必须记住,如果JS和PHP位于同一个文档中,则将首先在服务器上执行PHP,然后在浏览器上执行JS,并且两者将永远不会交互(除非您在哪里用PHP输出JS,这实际上不是两个引擎之间的交互)。 考虑
问题内容: 将从大型文本文件提取的列表中返回最大的列表,但是如何将输出存储为变量? 问题答案: 使用命令替换: 另外,出于可移植性考虑,我建议始终将用作参数。我遇到了一些无法使用的化身。
问题内容: 我需要一个变量来保存从数据库中检索到的结果。到目前为止,这基本上是我正在尝试但没有成功的方法。 如您所见,我对bash命令的理解不是很好。 问题答案: 我对MySQL命令行界面了解不多,但是假设您只需要帮助,可以尝试像下面这样交换命令: 它将字符串回显到MySQL。或者,您可以更喜欢并使用一些新的bash功能(here字符串) 结果相同(假设您使用的是最新的bash版本),而没有涉及e
问题内容: 我想要的是将git命令的输出(例如git status)存储在shell脚本的变量内。当我说输出时,我说的是在终端上执行命令时返回的文本,例如:在回购之外执行git status时: 我尝试了这个: 但是’var’没有存储任何东西。 问题答案: 您可以使用: 即将stderr重定向到stdout,然后捕获输出。 否则,当会写上错误消息并且您的命令:仅正在捕获时。
问题内容: 我在Linux上使用bash shell。我有这个简单的脚本…… 但是,当我运行此脚本时 打印所有输出而没有回车/换行。不知道这是我将输出存储到$ TEMP还是echo命令本身的方式。 如何将命令的输出存储到变量并保留换行符/回车符? 问题答案: 引用 您的变量。原因如下: 不带引号的外壳将替换为其包含的字符(其中之一是换行符)。然后,在调用shell 之前,先使用(IFS)将该字符串
我用这个代码打API- 像这样,我得到的返回值为200。这意味着我成功点击了网址。但是我必须存储API的输出。我的 API 返回唯一 ID。如何存储输出?