使用严重性级别创建警报
重要
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
使用严重性级别创建警报
在 对象资源管理器中, 单击加号以展开想要使用严重性级别创建警报的服务器。
单击加号以展开:SQL Server 代理。
右键单击 警报 并选择 新警报。
在“新建警报”对话框中,在名称框中,输入此警报的名称。
在 类型 列表中,选择 SQL Server 事件警报。
在 事件警报定义下,在 数据库名称 列表中,选择一个数据库以将警报限制为特定数据库。
在 中,将根据提起警报,点击 严重性,然后选择触发警报的特定严重性。
选中与 引发警报对应的框(当消息包含 复选框)以将警报限制为特定字符序列,然后输入 消息文本的关键字或字符串。 最大字符数为 100。
单击“确定”。
使用 Transact-SQL
通过严重性级别创建警报
在 对象资源管理器中,连接到数据库引擎的实例。
在标准栏上,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。
-- 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)。