使用严重性级别创建警报

适用于:SQL ServerAzure SQL 托管实例

重要

Azure SQL 托管实例,目前大多数但并非所有 SQL Server 代理功能都受支持。 有关详细信息,请参阅 Azure SQL 托管实例中与 SQL Server 不同的 T-SQL 差异

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 创建在 SQL Server 中发生特定严重性级别的事件时引发的Microsoft SQL Server 代理警报。

开始之前

限制与规定

  • SQL Server Management Studio 提供了一种简单、图形的方式来管理整个警报系统,并推荐用于配置警报基础结构的方法。

  • 使用 xp_logevent 生成的事件发生在 master 数据库中。 因此,xp_logevent 不会触发警报,除非警报的 @database_name'master' 或 NULL。

  • 从 19 到 25 的严重性级别将 SQL Server 消息发送到 Microsoft Windows 应用程序日志并触发警报。 仅当已使用 sp_altermessage、RAISERROR WITH LOG 或 xp_logevent 强制将警报写入 Windows 应用程序日志时,严重级别小于 19 的事件才会触发警报。

安全

权限

默认情况下,只有 sysadmin 固定服务器角色的成员才能执行 sp_add_alert

使用 SQL Server Management Studio

使用严重性级别创建警报

  1. 对象资源管理器中, 单击加号以展开想要使用严重性级别创建警报的服务器。

  2. 单击加号以展开:SQL Server 代理

  3. 右键单击 警报 并选择 新警报

  4. “新建警报”对话框中,在名称框中,输入此警报的名称。

  5. 类型 列表中,选择 SQL Server 事件警报

  6. 事件警报定义下,在 数据库名称 列表中,选择一个数据库以将警报限制为特定数据库。

  7. 中,将根据提起警报,点击 严重性,然后选择触发警报的特定严重性。

  8. 选中与 引发警报对应的框(当消息包含 复选框)以将警报限制为特定字符序列,然后输入 消息文本的关键字或字符串。 最大字符数为 100。

  9. 单击“确定”

使用 Transact-SQL

通过严重性级别创建警报

  1. 对象资源管理器中,连接到数据库引擎的实例。

  2. 在标准栏上,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行

    -- Adds an alert (Test Alert) that notifies the
    -- Alert Operator via email when an error with a 
    -- severity of 23 is detected.
    
    -- Assumes that the Alert Operator already exists 
    -- and that database mail is configured.
    
    USE msdb ;  
    GO  
    
    EXEC dbo.sp_add_alert @name=N'Test Alert', 
      @message_id = 0, 
      @severity = 23, 
      @enabled = 1, 
      @include_event_description_in = 1
    ;
    GO
    
    EXEC dbo.sp_add_notification @alert_name=N'Test Alert',
      @operator_name=N'Alert Operator',
      @notification_method=1
    ;
    GO
    
    

有关详细信息,请参阅 sp_add_alert(Transact-SQL)