Write the Job Status to the Windows Application Log

适用于SQL Server Azure SQL 托管实例

重要

Azure SQL 托管实例目前支持大多数(但不是所有)SQL Server 代理功能。 有关详细信息,请参阅 Azure SQL 托管实例与 SQL Server 的 T-SQL 区别

本主题介绍如何在 SQL Server 中配置 Microsoft SQL Server 代理,以使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 管理对象将作业状态写入 Windows 应用程序事件日志。

作业响应可确保数据库管理员知道作业完成的时间和作业运行频率。 典型的作业响应包括:

  • 使用电子邮件、电子寻呼或 net send 消息通知操作员。 如果操作员必须执行后续操作,应使用其中的某种作业响应。 例如,当一个备份作业成功地完成之后,必须通知操作员取出备份磁带并将其存放在安全处。

  • 将事件消息写入 Windows 应用程序日志。 只能对失败的作业使用这种响应。

  • 自动删除作业。 如果确信不需要再次运行该作业,可以使用这种作业响应。

开始之前

安全性

有关详细信息,请参阅实现 SQL Server 代理安全性

使用 SQL Server Management Studio

将作业状态写入 Windows 应用程序日志

  1. “对象资源管理器” 中,连接到 SQL Server 数据库引擎的实例,然后展开该实例。

  2. 展开 “SQL Server 代理”,展开 “作业”,右键单击要编辑的作业,再单击 “属性”

  3. 选择 “通知” 页。

  4. 请检查 “写入 Windows 应用程序事件日志”,然后执行下列操作之一:

    • 单击“当作业成功时”选项,在作业成功完成时记录作业状态。

    • 单击“当作业失败时”选项,在作业未能成功完成时记录作业状态。

    • 单击“当作业完成时”选项,以便无论完成状态如何,都记录作业状态。

使用 SQL Server 管理对象

将作业状态写入 Windows 应用程序日志

通过使用所选编程语言(如 Visual Basic、Visual C# 或 PowerShell)来调用 Job 类的 EventLogLevel 属性。

下列代码示例将作业设置为在作业完成执行时生成操作系统事件日志条目。

PowerShell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")  
$jb = new-object Microsoft.SqlServer.Management.Smo.Agent.Job($srv.JobServer, "Test Job")  
$jb.EventLogLevel = [Microsoft.SqlServer.Management.Smo.Agent.CompletionAction]::Always