sp_update_alert (Transact-SQL)

适用于:SQL Server

更新现有警报的设置。

Transact-SQL 语法约定

语法

sp_update_alert
    [ @name = ] N'name'
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @message_id = ] message_id ]
    [ , [ @severity = ] severity ]
    [ , [ @delay_between_responses = ] delay_between_responses ]
    [ , [ @notification_message = ] N'notification_message' ]
    [ , [ @include_event_description_in = ] include_event_description_in ]
    [ , [ @database_name = ] N'database_name' ]
    [ , [ @event_description_keyword = ] N'event_description_keyword' ]
    [ , [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @occurrence_count = ] occurrence_count ]
    [ , [ @count_reset_date = ] count_reset_date ]
    [ , [ @count_reset_time = ] count_reset_time ]
    [ , [ @last_occurrence_date = ] last_occurrence_date ]
    [ , [ @last_occurrence_time = ] last_occurrence_time ]
    [ , [ @last_response_date = ] last_response_date ]
    [ , [ @last_response_time = ] last_response_time ]
    [ , [ @raise_snmp_trap = ] raise_snmp_trap ]
    [ , [ @performance_condition = ] N'performance_condition' ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @wmi_namespace = ] N'wmi_namespace' ]
    [ , [ @wmi_query = ] N'wmi_query' ]
[ ; ]

参数

[ @name = ] N'name'

要更新的警报的名称。 @name为 sysname,无默认值。

[ @new_name = ] N'new_name'

警报的新名称。 名称必须唯一。 @new_name为 sysname,默认值为 NULL.

[ @enabled = ] enabled

指定警报是启用的(1)还是未启用(0)。 @enabled为 tinyint,默认值为 NULL. 必须启用警报,才能激发警报。

[ @message_id = ] message_id

警报定义的新消息或错误号。 通常,message_id对应于 sysmessages 表中的错误号@message_id为 int,默认值为 NULL. 仅当警报的严重性级别设置为 0时,才能使用消息 ID。

[ @severity = ] 严重性

警报定义的新严重性级别(从 125级别)。 发送到具有指定严重性的 Windows 应用程序日志的任何 SQL Server 消息将激活警报。 @severity为 int,默认值为 NULL. 仅当警报的消息 ID 设置为 0时,才能使用严重性级别。

[ @delay_between_responses = ] delay_between_responses

警报响应之间的新的等待间隔(以秒为单位)。 @delay_between_responses为 int,默认值为 NULL.

[ @notification_message = ] N'notification_message'

作为电子邮件、 网络发送或寻呼通知的一部分,发送给操作员的其他邮件的修订文本。 @notification_message为 nvarchar(512),默认值为 NULL.

[ @include_event_description_in = ] include_event_description_in

指定是否应将 Windows 应用程序日志中的 SQL Server 错误说明包含在通知消息中。 @include_event_description_intinyint,可以是其中一个或多个值。

说明
0
1 电子邮件
2 寻呼机
4 net send
7 全部

[ @database_name = ] N'database_name'

只有其中出现错误时才能激发警报的数据库的名称。 @database_name为 sysname,默认值为 NULL. 不允许括在括号 ([]) 中的名称。

[ @event_description_keyword = ] N'event_description_关键字 (keyword)'

必须在错误消息日志中 SQL Server 错误的说明中找到的字符序列。 @event_description_关键字 (keyword)为 nvarchar(100),默认值为 NULL. 此参数可用于筛选对象名称(例如 customer_table)。

注意

不能使用 Transact-SQL LIKE 表达式模式匹配字符。

[ @job_id = ] 'job_id'

@job_id是 uniqueidentifier,默认值为 NULL.

[ @job_name = ] N'job_name'

作业标识号。 @job_name为 sysname,默认值为 NULL. 如果 指定了job_id则必须省略job_name

[ @occurrence_count = ] occurrence_count

重置警报发生的次数。 @occurrence_count为 int,默认值NULL为 ,只能设置为 0

[ @count_reset_date = ] count_reset_date

重置上一次重置发生计数的日期。 @count_reset_date为 int,默认值为 NULL.

[ @count_reset_time = ] count_reset_time

重置上一次重置发生计数的时间。 @count_reset_time为 int,默认值为 NULL.

[ @last_occurrence_date = ] last_occurrence_date

重置上一次发生警报的日期。 @last_occurrence_date为 int,默认值NULL为 ,只能设置为 0

[ @last_occurrence_time = ] last_occurrence_time

重置上一次发生警报的时间。 @last_occurrence_time为 int,默认值NULL为,只能设置为 0

[ @last_response_date = ] last_response_date

重置 SQLServerAgent 服务上一次响应警报的日期。 @last_response_date为 int,默认值NULL为 ,只能设置为 0

[ @last_response_time = ] last_response_time

重置 SQLServerAgent 服务上一次响应警报的时间。 @last_response_time为 int,默认值NULL为 ,只能设置为 0

[ @raise_snmp_trap = ] raise_snmp_trap

标识为仅供参考。 不支持。 不保证以后的兼容性。

[ @performance_condition = ] N'performance_condition'

以格式 <itemcomparatorvalue>表示的值。 @performance_conditionnvarchar(512),由以下元素组成。

格式元素 说明
项目 性能对象、性能计数器或计数器的命名实例
比较 以下运算符之一:><=
计数器的数值

[ @category_name = ] N'category_name'

警报类别的名称。 @category_name为 sysname,默认值为 NULL.

[ @wmi_namespace = ] N'wmi_namespace'

用于查询事件的 WMI 命名空间。 @wmi_namespace为 sysname,默认值为 NULL.

[ @wmi_query = ] N'wmi_query'

用于指定警报的 WMI 事件的查询。 @wmi_query为 nvarchar(512),默认值为 NULL.

返回代码值

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

注解

只有 sysmessages 写入 Windows 应用程序日志才能触发警报。

sp_update_alert 仅更改提供参数值的警报设置。 如果省略某一参数,则保留其当前设置。

权限

若要运行此存储过程,用户必须是 sysadmin 固定服务器角色的成员

示例

以下示例将已启用的 Test Alert 设置更改为 0

USE msdb;
GO

EXEC dbo.sp_update_alert
    @name = N'Test Alert',
    @enabled = 0;
GO