Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Riasztást hoz létre.
Transact-SQL szintaxis konvenciók
Szemantika
sp_add_alert [ @name = ] N'name'
[ , [ @message_id = ] message_id ]
[ , [ @severity = ] severity ]
[ , [ @enabled = ] enabled ]
[ , [ @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' } ]
[ , [ @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' ]
[ ; ]
Érvek
[ @name = ] N'név'
A riasztás neve. A név megjelenik a riasztásra válaszul küldött e-mailben vagy lapozóüzenetben. Egyedinek kell lennie, és tartalmaznia kell a százalék (%) karaktert.
@namea sysname, alapértelmezés nélkül.
[ @message_id = ] message_id
A riasztást meghatározó üzenet-hibaszám. (Ez általában egy hibaszámnak felel meg a sysmessages táblázatban.) @message_idint, alapértelmezés szerint 0. Ha @severity a riasztás meghatározására szolgál, @message_id kell lennie 0 vagy NULL.
Csak sysmessages a Microsoft Windows alkalmazásnaplóba írt hibák okozhatnak riasztást.
[ @severity = ] súlyosság
A riasztást meghatározó súlyossági szint (átról-lépésre 125).
@severityint, alapértelmezés szerint 0. A Windows-alkalmazásnaplóba küldött táblában sysmessages tárolt SQL Server-üzenetek a jelzett súlyossággal a riasztás elküldését okozzák. Ha @message_id a riasztás meghatározására szolgál, @severity kell lennie 0.
[ @enabled = ] engedélyezve
A riasztás aktuális állapotát jelzi.
@enabledapró, alapértelmezés szerint 1 (engedélyezve) van. Ha 0a riasztás nincs engedélyezve, és nem aktiválódik.
[ @delay_between_responses = ] delay_between_responses
A riasztásra adott válaszok közötti várakozási időszak másodpercben.
@delay_between_responsesint, alapértelmezett értéke 0, ami azt jelenti, hogy nincs várakozás a válaszok között (a riasztás minden előfordulása választ ad). A válasz lehet az alábbi űrlapok egyikében vagy mindkettőben:
- Egy vagy több e-mailben vagy lapozón keresztül küldött értesítés
- Végrehajtandó feladat
Ennek az értéknek a beállításával megakadályozhatja például a nemkívánatos e-mailek küldését, ha egy riasztás rövid időn belül ismételten előfordul.
[ @notification_message = ] N'notification_message'
Az e-mail net sendvagy a lapozó értesítése részeként az operátornak küldött opcionális további üzenet.
@notification_messagenvarchar(512), alapértelmezett értéke NULL. A @notification_message megadása hasznos speciális jegyzetek, például szervizelési eljárások hozzáadásához.
[ @include_event_description_in = ] include_event_description_in
Azt, hogy az SQL Server-hiba leírása szerepel-e az értesítési üzenetben.
@include_event_description_inaz alapértelmezett 5 (e-mail és net send) értékekkel rendelkezik, és ezek közül egy vagy több logikai operátorral OR kombinálható.
Fontos
A rendszer eltávolítja a pagert és net send a beállításokat az SQL Server-ügynökből az SQL Server egy későbbi verziójában. Ne használja ezeket a funkciókat az új fejlesztési munkában, és tervezze módosítani azokat az alkalmazásokat, amelyek jelenleg használják ezeket a funkciókat.
| Érték | Leírás |
|---|---|
0 |
Egyik sem |
1 |
|
2 |
Pager |
4 |
net send |
[ @database_name = ] N'database_name'
Az adatbázis, amelyben a hiba a riasztás aktiválásához szükséges. Ha @database_name nincs megadva, a riasztás a hiba helyétől függetlenül aktiválódik. [ ]) lévő nevek nem engedélyezettek.
[ @event_description_keyword = ] N'event_description_keyword'
Egy karaktersorozat, amelyet az SQL Server-hiba leírásában kell megtalálni a hibaüzenetnaplóban.
@event_description_keywordnvarchar(100), alapértelmezés szerint NULL. Ez a paraméter hasznos az objektumnevek szűréséhez (például customer_table).
Megjegyzés
LIKETransact-SQL kifejezésmintának megfelelő karakterek nem használhatók.
[ @job_id = ] job_id
A riasztásra válaszul futtatandó feladat feladatazonosítási száma.
@job_iduniqueidentifier, alapértelmezett értéke NULL.
Meg kell adni @job_id vagy @job_name, de mindkettőt nem lehet megadni.
[ @job_name = ] N'job_name'
A riasztásra válaszul végrehajtandó feladat neve.
Meg kell adni @job_id vagy @job_name, de mindkettőt nem lehet megadni.
[ @raise_snmp_trap = ] raise_snmp_trap
Az SQL Server 7.0-s verziójában nem implementálva.
@raise_snmp_trapa tinyint, alapértelmezett értéke 0.
[ @performance_condition = ] N'performance_condition'
Az "ItemComparatorValue" formátumban kifejezett érték.
@performance_conditionnvarchar(512), alapértelmezett értéke NULL, és ezekből az elemekből áll.
| Elem formázása | Leírás |
|---|---|
| Elem | A számláló teljesítményobjektuma, teljesítményszámlálója vagy elnevezett példánya. |
| Összehasonlító | Az alábbi operátorok egyike: >, <vagy =. |
| Érték | A számláló numerikus értéke. |
[ @category_name = ] N'category_name'
A riasztási kategória neve.
@category_namea sysname, alapértelmezés szerint NULLa .
[ @wmi_namespace = ] N'wmi_namespace'
Az események lekérdezéséhez használt WMI-névtér.
@wmi_namespacea sysname, alapértelmezés szerint NULLa . Csak a helyi kiszolgálón lévő névterek támogatottak.
[ @wmi_query = ] N'wmi_query'
A riasztás WMI-eseményét meghatározó lekérdezés.
@wmi_querynvarchar(512), alapértelmezett értéke NULL.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Eredményhalmaz
Nincs.
Megjegyzések
sp_add_alert a msdb adatbázisból kell futtatni.
Ilyen körülmények között az SQL Server és az SQL Server-alkalmazások által generált hibák/üzenetek a Windows-alkalmazásnaplóba kerülnek, ezért riasztásokat hozhatnak létre:
- Súlyosság 19 vagy magasabb
sys.messageshibák - Szintaxissal
WITH LOGmeghívott bármelyRAISERRORutasítás - Bármely
sys.messageshiba, amely a következő használatával módosult vagy jött létre:sp_altermessage - Minden olyan esemény, amely a következő használatával van naplózva:
xp_logevent
Az SQL Server Management Studio egyszerű, grafikus módot kínál a teljes riasztási rendszer felügyeletére, és a riasztási infrastruktúra konfigurálásának ajánlott módja.
Ha egy riasztás nem működik megfelelően, ellenőrizze, hogy:
Az SQL Server Agent szolgáltatás fut
Az esemény megjelent a Windows-alkalmazásnaplóban
A riasztás engedélyezve van
A
xp_logeventlétrehozott események amasteradatbázisban fordulnak elő. Ezért csak akkor aktivál riasztást,xp_logeventha a riasztás @database_name vagymasterNULL.
Engedélyek
Alapértelmezés szerint csak a sysadmin rögzített kiszolgálói szerepkör tagjai hajthatnak végre sp_add_alert.
Példák
1. példa – Riasztás hozzáadása feladathoz
Az alábbi példa egy riasztást (tesztriasztást) ad hozzá, amely aktivált állapotban futtatja a Back up the AdventureWorks2022 Database feladatot.
Megjegyzés
Ez a példa feltételezi, hogy az 55001 üzenet és a Back up the AdventureWorks2022 Database feladat már létezik. A példa csak szemléltető célokra jelenik meg.
USE msdb;
GO
EXECUTE dbo.sp_add_alert
@name = N'Test Alert',
@message_id = 55001,
@severity = 0,
@notification_message = N'Error 55001 has occurred. The database will be backed up...',
@job_name = N'Back up the AdventureWorks2022 Database';
GO
2. példa – Riasztás hozzáadása replikációs küszöbértékhez
Az alábbi példa egy riasztást ad hozzá, amely értesíti, ha egy replikációs tranzakció túllépte a késési küszöbértéket:
EXECUTE msdb.dbo.sp_add_alert
@name = N'Replication Warning: Transactional replication latency (Threshold: latency)',
@message_id = 14161,
@severity = 0,
@enabled = 1,
@delay_between_responses = 30,
@include_event_description_in = 5,
@category_name = N'Replication',
@job_id = N'00000000-0000-0000-0000-000000000000';
GO