【问题标题】:Writing to the history of a SQL Agent Job写入 SQL 代理作业的历史记录
【发布时间】:2010-12-28 19:27:16
【问题描述】:

刚刚创建了一个 SQL 代理作业,我认为能够将一些信息写入作业的历史记录会很方便,以防我以后想检查它。

我在这个例子中使用了 VBScript,并注意到我可以使用 Error 对象来记录历史中的信息,例如:

Err.Raise 999, "The code died"

如果您右键单击该作业并选择“查看历史记录”,则错误编号和说明会在那里供所有人查看。

但是成功完成呢?我可以以某种方式Return 一个值吗?最好说“处理 34 个文件后完成 OK”之类的内容。

这次我会对 VBScript 的答案感兴趣,但如果您知道如何使用 T-SQL 或 CmdExec 执行此操作,这将有助于了解,以防万一。谢谢。

【问题讨论】:

    标签: vbscript scheduled-tasks sql-server-agent


    【解决方案1】:

    如果您在 SQL 作业中使用 VBScript,最好将 VBScript 保存为 .vbs 文件,然后使用 CmdExec 作业步骤来执行它,就像这样

    CScript c:\test.vbs
    

    然后,在您的 .vbs 文件中,您可以使用 WScript.Echo 命令显示一条消息

    WScript.Echo "This is a test"
    

    如果您要双击您的 .vbs 文件,它会显示一个消息框,但是当使用 SQL 作业中的 CScript.exe 执行时,应将回显输出写入作业的历史记录以供您查看。

    请注意,尝试在带有 VBScript 作业步骤的 SQL 作业中直接使用 WScript.Echo 是行不通的。

    如果您使用的是 T-SQL 步骤,则可以简单地使用 PRINT 语句,因为这会被写入历史记录。

    【讨论】:

    • 这是一个非常全面的答案,效果很好,谢谢!对于奖励积分,请解释如何从 VBScript 返回 SQL 作业历史记录显示(并检测为成功/失败)的“退出代码”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多