sp_help_alert (Transact-SQL)

适用于:SQL Server

报告有关为服务器定义的警报的信息。

Transact-SQL 语法约定

语法

sp_help_alert [ [ @alert_name = ] N'alert_name' ]
    [ , [ @order_by = ] N'order_by' ]
    [ , [ @alert_id = ] alert_id ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @legacy_format = ] legacy_format ]
[ ; ]

参数

[ @alert_name = ] N'alert_name'

警报名称。 @alert_name为 nvarchar(128)。 如果未 指定@alert_name ,则会返回有关所有警报的信息。

[ @order_by = ] N'order_by'

用于生成结果的排序顺序。 @order_by为 sysname,默认值为 @alert_name

[ @alert_id = ] alert_id

报告其有关信息的警报的标识号。 @alert_id为 int,默认值为 NULL.

[ @category_name = ] N'category'

警报的类别。 @category为 sysname,默认值为 NULL.

[ @legacy_format = ] legacy_format

是否生成旧结果集。 @legacy_format为,默认值为 0. 当@legacy_format1sp_help_alert返回 SQL Server 2000 (8.x) 中返回sp_help_alert的结果集。

返回代码值

0(成功)或 1(失败)。

结果集

当@legacy_format0sp_help_alert生成以下结果集。

列名称 数据类型 说明
id int 系统分配的唯一整数标识符。
name sysname 警报名称(例如演示:完整 msdb 日志)。
event_source nvarchar(100) 事件源。 它始终适用于 MSSQLServer Microsoft SQL Server 版本 7.0
event_category_id int 标识为仅供参考。 不支持。 不保证以后的兼容性。
event_id int 标识为仅供参考。 不支持。 不保证以后的兼容性。
message_id int 定义警报的消息错误号。 (通常对应于表中的错误号 sysmessages )。 如果使用严重性来定义警报, message_id 则为 0NULL
severity int 定义警报的严重性级别(从9、到、130110120140)。25
enabled tinyint 警报当前是否已启用(1)的状态。0 未发送不可启用的警报。
delay_between_responses int 警报两次响应之间的等待间隔(秒)。
last_occurrence_date int 上次出现警报的日期。
last_occurrence_time int 上次出现警报的时间。
last_response_date int 警报上次由SQL Server 代理服务响应的日期。
last_response_time int 警报上次由SQL Server 代理服务响应的时间。
notification_message nvarchar(512) 作为电子邮件或寻呼通知的一部分发送给操作员的其他可选消息。
include_event_description tinyint Microsoft Windows 应用程序日志中的 SQL Server 错误说明是否应成为通知消息的一部分。
database_name sysname 必须出现错误才能使警报得以激发的数据库。 如果数据库名称为 NULL,则无论发生错误的位置如何,警报都会触发。
event_description_keyword nvarchar(100) Windows 应用程序日志中 SQL Server 错误的说明必须与提供的字符序列类似。
occurrence_count int 警报出现的次数。
count_reset_date int 上次重置的 occurrence_count 日期。
count_reset_time int 上次 occurrence_count 重置的时间。
job_id uniqueidentifier 为了响应警报而执行的作业的标识号。
job_name sysname 为了响应警报而执行的作业的名称。
has_notification int 如果将这个警报通知给一个或多个操作员,则为非零。 该值是以下一个或多个值(OR一起):

1=具有电子邮件通知
2=has pager notification
4= 具有 net send 通知。
flags int 标识为仅供参考。 不支持。 不保证以后的兼容性。
performance_condition nvarchar(512) 2如果是type,则此列显示性能条件的定义;否则,列为 NULL
category_name sysname 标识为仅供参考。 不支持。 不保证以后的兼容性。 对于 SQL Server 7.0,始终为“[未分类]”。
wmi_namespace sysname 3如果是type,则此列显示 WMI 事件的命名空间。
wmi_query nvarchar(512) 3如果是type,则此列显示 WMI 事件的查询。
type int 事件的类型:

1 = SQL Server 事件警报
2 = SQL Server 性能警报
3 = WMI 事件警报

当@legacy_format1sp_help_alert生成以下结果集。

列名称 数据类型 说明
id int 系统分配的唯一整数标识符。
name sysname 警报名称(例如演示:完整 msdb 日志)。
event_source nvarchar(100) 事件源。 它始终 MSSQLServer 适用于 SQL Server 版本 7.0
event_category_id int 标识为仅供参考。 不支持。 不保证以后的兼容性。
event_id int 标识为仅供参考。 不支持。 不保证以后的兼容性。
message_id int 定义警报的消息错误号。 (通常对应于表中的错误号 sysmessages )。 如果使用严重性来定义警报, message_id 则为 0NULL
severity int 定义警报的严重性级别(从9、到、130110120140)。25
enabled tinyint 警报当前是否已启用(1)的状态。0 未发送不可启用的警报。
delay_between_responses int 警报两次响应之间的等待间隔(秒)。
last_occurrence_date int 上次出现警报的日期。
last_occurrence_time int 上次出现警报的时间。
last_response_date int 警报上次由SQL Server 代理服务响应的日期。
last_response_time int 警报上次由SQL Server 代理服务响应的时间。
notification_message nvarchar(512) 作为电子邮件或寻呼通知的一部分发送给操作员的其他可选消息。
include_event_description tinyint 是否应将 Windows 应用程序日志中 SQL Server 错误的说明作为通知消息的一部分包含在内。
database_name sysname 必须出现错误才能使警报得以激发的数据库。 如果数据库名称为 NULL,则无论发生错误的位置如何,警报都会触发。
event_description_keyword nvarchar(100) Windows 应用程序日志中 SQL Server 错误的说明必须与提供的字符序列类似。
occurrence_count int 警报出现的次数。
count_reset_date int 上次重置的 occurrence_count 日期。
count_reset_time int 上次 occurrence_count 重置的时间。
job_id uniqueidentifier 作业标识号。
job_name sysname 为了响应警报而执行的按需作业。
has_notification int 如果将这个警报通知给一个或多个操作员,则为非零。 该值是下列值中的一个或多个(用 OR 连起来):

1=具有电子邮件通知
2=has pager notification
4=has net send notification。
flags int 标识为仅供参考。 不支持。 不能保证将来的兼容性。
performance_condition nvarchar(512) 2如果是type,则此列显示性能条件的定义。 3如果是type,则此列显示 WMI 事件的查询。 否则,列为 NULL.
category_name sysname 标识为仅供参考。 不支持。 不保证以后的兼容性。 始终适用于 [Uncategorized] SQL Server 7.0。
type int 警报类型:

1 = SQL Server 事件警报
2 = SQL Server 性能警报
3 = WMI 事件警报

注解

sp_help_alert 必须从 msdb 数据库运行。

权限

默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。 其他用户必须在数据库中被授予 SQLAgentOperatorRole 固定数据库角色 msdb

有关 SQLAgentOperatorRole 的详细信息,请参阅SQL Server 代理固定数据库角色

示例

以下示例报告有关 Demo: Sev. 25 Errors 警报的信息。

USE msdb;
GO

EXEC sp_help_alert @alert_name = 'Demo: Sev. 25 Errors';
GO