sp_update_alert (Transact-SQL)
适用于:SQL Server
更新现有警报的设置。
语法
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 = ] 严重性
警报定义的新严重性级别(从 1
此 25
级别)。 发送到具有指定严重性的 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_in 是 tinyint,可以是其中一个或多个值。
值 | 说明 |
---|---|
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_condition 为 nvarchar(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