創(chuàng)建一個警報。
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'
警報的名稱。此名稱出現在為響應警報而發(fā)送的電子郵件或呼叫消息中。此名稱必須唯一,可以包含百分比字符 (%)。name 的數據類型為 sysname,沒有默認設置。
[ @message_id = ] message_id
用于定義警報的消息錯誤號。(通常與 sysmessages 表中的某個錯誤號對應。)message_id 的數據類型為 int,默認設置為 0。如果使用 severity 定義警報,則 message_id 必須為 0 或 NULL。
說明 只有寫入 Microsoft® Windows NT® 應用程序日志的 sysmessages 錯誤才能導致發(fā)送警報。
[ @severity = ] severity
用于定義警報的嚴重級別(從 1 到 25)。只要存儲于 sysmessages 表中的 Microsoft SQL Server™ 消息以指定嚴重度發(fā)送到 Microsoft Windows NT 應用程序日志中,就會導致發(fā)送警報。Severity 的數據類型為 int,默認設置為 0。如果 message_id 用于定義警報,severity 必須為 0。
[ @enabled = ] enabled
表明警報的當前狀態(tài)。enabled 的數據類型為 tinyint,默認設置為 1(啟用)。如果為 0,則不啟用警報,也不激發(fā)。
[ @delay_between_responses = ] delay_between_responses
警報響應之間的等待間隔,以秒為單位。delay_between_responses 的數據類型為 int,默認設置為 0,這意味著響應之間不等待(每次出現警報都生成響應)。響應可同時為下列兩種形式,或其中的一種:
例如,通過設置該值,當警報在短時間內重復產生時,就有可能避免發(fā)送重復的電子郵件。
[ @notification_message = ] 'notification_message'
作為電子郵件、net send 或呼叫提示的一部分發(fā)送給操作員的可選附加消息。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 | 呼叫程序 |
| 4 | net send |
[ @database_name = ] 'database'
必須在其中出現錯誤才能激發(fā)警報的數據庫。如果沒提供database,則無論何處發(fā)生錯誤,警報都要啟動。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
響應該警報運行的作業(yè)的作業(yè)標識號。job_id 的數據類型為 uniqueidentifier,默認設置為 NULL。
[ @job_name = ] 'job_name'
響應該警報所執(zhí)行的作業(yè)名稱。job_name 的數據類型為 sysname,默認設置為 NULL。
說明 必須指定 job_id 或 job_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 個數據庫之后創(chuàng)建的任何數據庫都不會包括在 sysperfinfo 系統(tǒng)表中,并且,使用 sp_add_alert 過程會返回一個錯誤。
[ @category_name = ] 'category'
警報分類的名稱。category 的數據類型為 sysname,默認設置為 NULL。
0(成功)或 1(失敗)
無
sp_add_alert 必須從 msdb 數據庫運行。
在下列情況下,SQL Server 和 SQL Server 應用程序產生的錯誤/消息被發(fā)送到 Windows NT 應用程序日志,因此能產生警報:
SQL Server 企業(yè)管理器提供了一種易用的圖形界面來管理整個警報系統(tǒng),這也是配置基本結構的推薦方式。
如果一個警報沒有正常工作,請檢查:
只有 sysadmin 固定服務器角色的成員才能執(zhí)行 sp_add_alert。
下面的示例添加一個警報(測試警報),該警報在啟動時喚醒調用備份客戶數據庫作業(yè)。
說明 此示例假設消息 55001 和備份用戶數據庫作業(yè)已經存在。示例只是出于說明性目的而顯示。
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'
相關文章