Create an Alert Using Severity Level

适用于: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'master' 或 NULL,否则 @database_name 不触发警报。

  • 如果严重级别在 19 到 25 之间,就会向 Microsoft Windows 应用程序日志发送 SQL Server 消息,并触发一个警报。 对于严重级别小于 19 的事件,只有在使用 sp_altermessage、RAISERROR WITH LOG 或 xp_logevent 强制这些事件写入 Windows 应用程序日志时,才会触发警报。

安全性

权限

默认情况下,只有 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)