• 相关软件
    >sp_add_alert 创建者:webmaster 更新时间:2006-02-16 15:51

    创建一个警报。



    语法


    sp_add_alert [ @name = ] 'name'

        [ , [ @message_id = ] message_id ]

        [ , [ @severity = ] severity ]

        [ , [ @enabled = ] enabled ]

        [ , [ @delay_between_responses = ] delay_between_responses ]

        [ , [ @notification_message = ] 'notification_message' ]

        [ , [ @include_event_description_in = ] include_event_description_in ]

        [ , [ @database_name = ] 'database' ]

        [ , [ @event_description_keyword = ] 'event_description_keyword_pattern' ]

        [ , { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ]

        [ , [ @raise_snmp_trap = ] raise_snmp_trap ]

        [ , [ @performance_condition = ] 'performance_condition' ]

        [ , [ @category_name = ] 'category' ]



    参数


    [ @name = ] 'name'



    警报的名称。此名称出现在为响应警报而发送的电子邮件或呼叫消息中。此名称必须唯一,可以包含百分比字符 (%)。name 的数据类型为 sysname,没有默认设置。



    [ @message_id = ] message_id



    用于定义警报的消息错误号。(通常与 sysmessages 表中的某个错误号对应。)message_id 的数据类型为 int,默认设置为 0。如果使用 severity 定义警报,则 message_id 必须为 0 或 NULL。



    说明  只有写入 Microsoft® Windows NT® 应用程序日志的 sysmessages 错误才能导致发送警报。



    [ @severity = ] severity



    用于定义警报的严重级别(从 1 到 25)。只要存储于 sysmessages 表中的 Microsoft SQL Server™ 消息以指定严重度发送到 Microsoft Windows NT 应用程序日志中,就会导致发送警报。Severity 的数据类型为 int,默认设置为 0。如果 message_id 用于定义警报,severity 必须为 0



    [ @enabled = ] enabled



    表明警报的当前状态。enabled 的数据类型为 tinyint,默认设置为 1(启用)。如果为 0,则不启用警报,也不激发。



    [ @delay_between_responses = ] delay_between_responses



    警报响应之间的等待间隔,以秒为单位。delay_between_responses 的数据类型为 int,默认设置为 0,这意味着响应之间不等待(每次出现警报都生成响应)。响应可同时为下列两种形式,或其中的一种:


    • 通过电子邮件或呼叫程序发送的一个或多个通知。



    • 执行作业。

      例如,通过设置该值,当警报在短时间内重复产生时,就有可能避免发送重复的电子邮件。




    [ @notification_message = ] 'notification_message'



    作为电子邮件、net send 或呼叫提示的一部分发送给操作员的可选附加消息。notification_message 的数据类型为 nvarchar(512),默认设置为 NULL。指定 notification_message 有助于添加特殊说明,例如补救过程。



    [ @include_event_description_in = ] include_event_description_in



    表示 SQL Server 错误描述是否应包含在通知消息中。include_event_description_in 的数据类型为 tinyint,默认设置为 5(电子邮件和 net send),并且,它可以使下面的一个或多个值与 OR 逻辑运算符结合使用。





























    描述
    0(默认值)
    1电子邮件
    2呼叫程序
    4net send



    [ @database_name = ] 'database'



    必须在其中出现错误才能激发警报的数据库。如果没提供database,则无论何处发生错误,警报都要启动。database 的数据类型为 sysname,默认设置为 NULL。



    [ @event_description_keyword = ] 'event_description_keyword_pattern'



    字符序列,对 SQL Server 错误的描述必须与此类似。可使用 Transact-SQL LIKE 表达式模式匹配字符。event_description_keyword_pattern 的数据类型为 nvarchar(100),默认设置为 NULL。该参数在筛选对象名称(例如,%customer_table%)时很有用。



    [ @job_id = ] job_id



    响应该警报运行的作业的作业标识号。job_id 的数据类型为 uniqueidentifier,默认设置为 NULL。



    [ @job_name = ] 'job_name'



    响应该警报所执行的作业名称。job_name 的数据类型为 sysname,默认设置为 NULL。



    说明  必须指定 job_idjob_name,但不能两个都指定。



    [ @raise_snmp_trap = ] raise_snmp_trap



    SQL Server 7.0 版中没有实现。



    [ @performance_condition = ] 'performance_condition'



    以格式 'item comparator value' 表达的一个值。performance_condition 的数据类型为 nvarchar(512),默认设置为 NULL,由下列元素组成。
























    格式元素描述
    Item性能对象,性能计数器或计数器的命名实例
    Comparator下列运算符之一:>、< 或 =
    Value计数器的数值



    说明  性能条件警报只供最前面的 99 个数据库使用。接在最前面的 99 个数据库之后创建的任何数据库都不会包括在 sysperfinfo 系统表中,并且,使用 sp_add_alert 过程会返回一个错误。



    [ @category_name = ] 'category'



    警报分类的名称。category 的数据类型为 sysname,默认设置为 NULL。



    返回代码值


    0(成功)或 1(失败)



    结果集




    注释


    sp_add_alert 必须从 msdb 数据库运行。



    在下列情况下,SQL Server 和 SQL Server 应用程序产生的错误/消息被发送到 Windows NT 应用程序日志,因此能产生警报:


    1. 严重度 19 或更高的 sysmessages 错误



    2. 任何使用 WITH LOG 语法唤醒调用的 RAISERROR 语句



    3. 所有用 sp_altermessage 修改或产生的 sysmessages 错误



    4. 所有用 xp_logevent 记录的日志事件



    SQL Server 企业管理器提供了一种易用的图形界面来管理整个警报系统,这也是配置基本结构的推荐方式。



    如果一个警报没有正常工作,请检查:


    • SQL Server代理程序服务是否正在运行。



    • 事件是否出现在 Windows NT 应用程序日志中。



    • 警报是否已被启用。



    权限


    只有 sysadmin 固定服务器角色的成员才能执行 sp_add_alert



    示例


    下面的示例添加一个警报(测试警报),该警报在启动时唤醒调用备份客户数据库作业。



    说明  此示例假设消息 55001 和备份用户数据库作业已经存在。示例只是出于说明性目的而显示。



    USE msdb
    EXEC sp_add_alert @name = 'Test Alert', @message_id = 55001,
      @severity = 0,
      @notification_message = 'Error 55001 has occurred. The database will
      be backed up...',
      @job_name = 'Back up the Customer Database'
    相关文章
    本页查看次数: