如何处理 SQL 代理作业错误?

Posted

技术标签:

【中文标题】如何处理 SQL 代理作业错误?【英文标题】:How to handle SQL Agent job error? 【发布时间】:2010-11-05 18:41:09 【问题描述】:

我正在编写一个 SQL 代理作业,以每天一次从表 1 和表 2 中删除行。 SQL Agent作业的步骤是:

    从表 1 中删除一些特定记录 从表 2 中删除一些特定记录。

我的问题是:

    如何记录SQL Agent过程中的错误?我们可以使用任何日志/事件吗? (以便我们了解 SQL 代理作业在哪几天失败,以及失败的原因。) 我希望 SQL 作业继续执行(删除)表 2 中的特定记录,即使出于某种原因从表 1 中删除失败,任何最佳实践如何实现?

【问题讨论】:

【参考方案1】:

我假设您的意思是 Microsoft SQL Server?

如果是,这两件事都很容易做到。

    只需查看 SQL 代理作业的属性即可。在“通知”下,您可以告诉作业写入 Windows 日志或向您发送电子邮件(但在此之前,您必须为每个服务器配置一次电子邮件)。 您可以选择是仅在失败时发生、仅在成功时发生还是始终发生。

    您可以在作业中定义不同的步骤。对于每个步骤,您可以定义如果失败时会发生什么以及成功时会发生什么(例如“转到下一步”或“结束有错误的作业”)。

编辑: 首先,here 是针对您的第一个问题的教程 - 如何设置通知以便在作业失败时收到电子邮件。

对于第二个问题,您需要打开 SQL Server 代理作业的属性。 我找到了属性窗口here的英文截图。 看图——你必须选择左边的“步骤”,然后你可以在右边看到工作的不同步骤。请注意右侧的“成功”和“失败”列,这就是我的意思。您可以在编辑步骤时编辑这些值。

【讨论】:

是的,我的意思是 SQL Server 作业。对于您提到的项目-“转到下一步”或“错误结束作业”,我没有看到在哪里设置。有任何想法吗?我正在使用 SQL Server 2008。我是 SQL Server 代理作业的新手。 我不确定它们是否完全像这样命名。我在德国,我的 SQL Server 是德语的。我只知道德语项目名称,我自己将它们翻译成英文。我看看能不能找到英文截图……

以上是关于如何处理 SQL 代理作业错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理Docker的错误消息request canceled:Docker代理问题

如何处理我在尝试通过 Pyspark 从 SQL 写入 Kudu 时遇到的这个错误

如何处理大查询错误403:配额超出?

如何处理触发器中的错误?

使用 DataGridView 控件和 Access 数据库查询时如何处理错误?

核心数据:如何处理新版本?