sp_help_alert (Transact-SQL)
报告有关为服务器定义的警报信息。
语法
sp_help_alert [ [ @alert_name = ] 'alert_name' ]
[ , [ @order_by = ] 'order_by' ]
[ , [ @alert_id = ] alert_id ]
[ , [ @category_name = ] 'category' ]
[ , [ @legacy_format = ] legacy_format ]
参数
[ @alert_name =] 'alert_name'
警报名称。alert_name 的数据类型为 nvarchar(128)。如果未指定 alert_name,则返回有关所有警报的信息。[ @order_by =] 'order_by'
用于生成结果的排序顺序。order_by的数据类型为 sysname,默认值为 N 'name'。[ @alert_id =] alert_id
报告其有关信息的警报的标识号。alert_id的数据类型为 int,默认值为 NULL。[ @category_name =] 'category'
警报的类别。category 的数据类型为 sysname,默认值为 NULL。[ @legacy_format=] legacy_format
是否要生成早期结果集。legacy_format 的数据类型为 bit,默认值为 0。当 legacy_format 为 1 时,sp_help_alert 将返回由 Microsoft SQL Server 2000 中的 sp_help_alert 返回的结果集。
返回代码值
0(成功)或 1(失败)
结果集
当 @legacy_format 为 0 时,sp_help_alert 将生成以下结果集:
列名 |
数据类型 |
说明 |
---|---|---|
id |
int |
系统分配的唯一整数标识符。 |
name |
sysname |
警报名称(例如,Demo: Full msdb log)。 |
event_source |
nvarchar(100) |
事件源。对于 Microsoft SQL Server 7.0 版,事件源始终为 MSSQLServer |
event_category_id |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。 |
event_id |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。 |
message_id |
int |
定义警报的消息错误号。(通常对应于 sysmessages 表中的错误号)。如果使用严重性定义警报,则 message_id 为 0 或 NULL。 |
severity |
int |
定义警报的严重级别(从 9 到 25、110、120、130 或 140)。 |
enabled |
tinyint |
指示警报当前是处于启用 (1) 还是禁用 (0) 状态。不发送未启用的警报。 |
delay_between_responses |
int |
警报两次响应之间的等待间隔(秒)。 |
last_occurrence_date |
int |
上次出现警报的日期。 |
last_occurrence_time |
int |
上次出现警报的时间。 |
last_response_date |
int |
SQLServerAgent 服务上次响应警报的日期。 |
last_response_time |
int |
SQLServerAgent 服务上次响应警报的时间。 |
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 = 有寻呼通知 4 = 有 Net Send 通知。 |
flags |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。 |
performance_condition |
nvarchar(512) |
如果 type 为 2,则此列将显示性能条件的定义;否则,此列为 NULL。 |
category_name |
sysname |
标识为仅供参考。不提供支持。不保证以后的兼容性。对于 SQL Server 7.0,将始终为“[Uncategorized]”。 |
wmi_namespace |
sysname |
如果 type 为 3,则此列将显示 WMI 事件的命名空间。 |
wmi_query |
nvarchar(512) |
如果 type 为 3,则此列显示 WMI 事件的查询。 |
type |
int |
事件类型: 1 = SQL Server 事件警报 2 = SQL Server 性能警报 3 = WMI 事件警报 |
当 @legacy_format 为 1 时,sp_help_alert 将生成以下结果集:
列名 |
数据类型 |
说明 |
---|---|---|
id |
int |
系统分配的唯一整数标识符。 |
name |
sysname |
警报名称(例如,Demo: Full msdb log)。 |
event_source |
nvarchar(100) |
事件源。对于 SQL Server 7.0 版,事件源始终为 MSSQLServer |
event_category_id |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。 |
event_id |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。 |
message_id |
int |
定义警报的消息错误号。(通常对应于 sysmessages 表中的错误号)。如果使用严重性定义警报,则 message_id 为 0 或 NULL。 |
severity |
int |
定义警报的严重级别(从 9 到 25、110、120、130 或 140)。 |
enabled |
tinyint |
指示警报当前是处于启用 (1) 还是禁用 (0) 状态。不发送未启用的警报。 |
delay_between_responses |
int |
警报两次响应之间的等待间隔(秒)。 |
last_occurrence_date |
int |
上次出现警报的日期。 |
last_occurrence_time |
int |
上次出现警报的时间。 |
last_response_date |
int |
SQLServerAgent 服务上次响应警报的日期。 |
last_response_time |
int |
SQLServerAgent 服务上次响应警报的时间。 |
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 = 有寻呼通知 4 = 有 Net Send 通知。 |
flags |
int |
标识为仅供参考。不提供支持。不保证以后的兼容性。. |
performance_condition |
nvarchar(512) |
如果 type 为 2,则此列将显示性能条件的定义。如果 type 为 3,则此列显示 WMI 事件的查询。否则,此列为 NULL。 |
category_name |
sysname |
标识为仅供参考。不提供支持。不保证以后的兼容性。对于 SQL Server 7.0,将始终为“[Uncategorized]”。 |
type |
int |
警报类型: 1 = SQL Server 事件警报 2 = SQL Server 性能警报 3 = WMI 事件警报 |
注释
必须从 msdb 数据库执行 sp_help_alert。
权限
默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。其他用户必须被授予 msdb 数据库中的 SQLAgentOperatorRole 固定数据库角色的权限。
有关 SQLAgentOperatorRole 的详细信息,请参阅 SQL Server 代理固定数据库角色。
示例
以下示例报告有关 Demo: Sev. 25 Errors 警报的信息。
USE msdb ;
GO
EXEC sp_help_alert @alert_name = 'Demo: Sev. 25 Errors'
GO