SQL Server作业输出中的SQLSTATE 01000

时间:2009-01-19 14:33:06

标签: sql-server sql-server-agent

我已经运行了包含定期“打印”语句的SQL Server作业,这样我就可以查看作业历史记录并了解发生的情况。但输出与[SQLSTATE 01000]混杂在一起。鉴于这个输出中有多少限制,我希望尽可能多的空间来获取我关心的信息。

有没有办法抑制'print'命令的[SQLSTATE 01000]输出?

3 个答案:

答案 0 :(得分:3)

问题(抱歉。“功能”)与SQL Agent中的PRINT命令有关。我已经通过创建一个表变量来解决这个问题,其中一列用于'output'并在我进入脚本时填充它,然后在表变量的作业SELECT的最后。通过SQL Agent将输出管道输出到文件可以为我提供作业日志。在作业中遇到错误的任何时候,我都会在退出之前转储表的内容。 (我通常在执行之前包含要在表变量中执行的命令)。简单地在作业结束时用一个SELECT语句替换所有PRINT语句将摆脱那些讨厌的[SQLSTATE 01000]后缀

...每隔 该死的... 线...

干杯, 肯

答案 1 :(得分:0)

你可能运气不好。这是PRINT语句的正常输出。我认为没有办法压制它们。

答案 2 :(得分:0)

如果您只想从输出中删除[SQLSTATE 01000]或包含[SQLSTATE 01000]的任何内容,则不是肯定的。所以这里有两种方式。

Print replace(@PrintThis, '[SQLSTATE 01000]', '');

基本上这将取代[SQLSTATE 01000]什么都没有。

下一个使用CHARINDEX(expression1,expression1 [,start_location]),在expression2中搜索表达式1,如果找到则返回其起始位置。搜索从start_location开始。

@result = CHARINDEX('[SQLSTATE 01000]', @PrintThis)
if (@result > 0)
    Print @PrintThis

所以如果CHARINDEX< 0字符串[SQLSTATE 01000]不存在且不打印

如果错过了您想要做的事情,请回复。

我希望这有帮助,

布雷特