sp_add_alert (Transact-SQL)
platí pro:SQL Server
Vytvoří výstrahu.
Syntaxe
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' ]
[ ; ]
Argumenty
[ @name = ] N'název'
Název výstrahy. Jméno se zobrazí v e-mailové nebo stránkové zprávě odeslané v reakci na výstrahu. Musí být jedinečný a může obsahovat znak procenta (%
).
@name je sysname bez výchozího nastavení.
[ @message_id = ] message_id
Číslo chyby zprávy, které definuje výstrahu. (Obvykle odpovídá chybě v sysmessages
tabulce.) @message_id je int, s výchozím nastavením 0
. Pokud @severity slouží k definování výstrahy, @message_id musí být 0
nebo NULL
.
Odeslání výstrahy může způsobit pouze sysmessages
chyby zapsané do protokolu aplikací systému Microsoft Windows.
[ @severity = ] závažnost
Úroveň závažnosti (od 1
) 25
, která definuje výstrahu.
@severity je int, s výchozím nastavením 0
. Jakákoli zpráva SQL Serveru uložená v sysmessages
tabulce odeslané do protokolu aplikace systému Windows s uvedenou závažností způsobí odeslání výstrahy. Pokud @message_id slouží k definování výstrahy, @severity musí být 0
.
[ @enabled = ] povoleno
Označuje aktuální stav výstrahy.
@enabled je tinyint s výchozím nastavením 1
(povoleno). Pokud 0
není upozornění povolené a neaktivuje se.
[ @delay_between_responses = ] delay_between_responses
Doba čekání v sekundách mezi odpověďmi na výstrahu.
@delay_between_responses je int s výchozím nastavením 0
, což znamená, že mezi odpověďmi nečeká (každý výskyt výstrahy vygeneruje odpověď). Odpověď může být v obou těchto formách:
- Jedno nebo více oznámení odesílaných prostřednictvím e-mailu nebo pageru
- Úloha, která se má provést
Nastavením této hodnoty je možné zabránit například tomu, aby se neposílaly nežádoucí e-mailové zprávy, když se výstraha opakovaně vyskytuje v krátkém časovém intervalu.
[ @notification_message = ] N'notification_message'
Volitelná další zpráva odeslaná operátorovi jako součást e-mailu nebo net send
oznámení pager.
@notification_message je nvarchar(512) s výchozím nastavením NULL
. Zadání @notification_message je užitečné pro přidání zvláštních poznámek, jako jsou nápravné postupy.
[ @include_event_description_in = ] include_event_description_in
Zda má být součástí oznámení popis chyby SQL Serveru.
@include_event_description_in je tinyint, s výchozím nastavením 5
(e-mail a net send
) a může mít jednu nebo více těchto hodnot v kombinaci s logickým operátorem OR
.
Důležité
Pager a net send
možnosti budou z agenta SQL Serveru odebrány v budoucí verzi SQL Serveru. Vyhněte se používání těchto funkcí v nové vývojové práci a naplánujte úpravu aplikací, které tyto funkce aktuálně používají.
Hodnota | Popis |
---|---|
0 |
Žádný |
1 |
|
2 |
Pager |
4 |
net send |
[ @database_name = ] N'database_name'
Databáze, ve které k chybě musí dojít, aby se výstraha aktivovalo. Pokud @database_name není zadán, upozornění se aktivuje bez ohledu na to, kde došlo k chybě.
@database_name je sysname , s výchozím NULL
. Názvy, které jsou uzavřeny v hranatých závorkách ([ ]
), nejsou povolené.
[ @event_description_keyword = ] N'event_description_keyword'
Posloupnost znaků, které musí být nalezeny v popisu chyby SQL Serveru v protokolu chybových zpráv.
@event_description_keyword je nvarchar(100), s výchozí hodnotou NULL
. Tento parametr je užitečný pro filtrování názvů objektů (například customer_table
).
Poznámka:
LIKE
Transact-SQL znaky porovnávání vzorů výrazů se nedají použít.
[ @job_id = ] job_id
Identifikační číslo úlohy, která se má spustit v reakci na tuto výstrahu.
@job_id je uniqueidentifier s výchozím NULL
.
Je nutné zadat @job_id nebo @job_name, ale obojí nelze zadat.
[ @job_name = ] N'job_name'
Název úlohy, která se má spustit v reakci na tuto výstrahu.
@job_name je sysname , s výchozím NULL
.
Je nutné zadat @job_id nebo @job_name, ale obojí nelze zadat.
[ @raise_snmp_trap = ] raise_snmp_trap
Není implementováno v SYSTÉMU SQL Server verze 7.0.
@raise_snmp_trap je tinyint, s výchozím nastavením 0
.
[ @performance_condition = ] N'performance_condition'
Hodnota vyjádřená ve formátu ItemComparatorValue.
@performance_condition je nvarchar(512) s výchozím nastavením NULL
a skládá se z těchto prvků.
Format – element | Popis |
---|---|
Položka | Objekt výkonu, čítač výkonu nebo pojmenovaná instance čítače. |
Komparátor | Jeden z těchto operátorů: > , < nebo = . |
Hodnota | Číselná hodnota čítače. |
[ @category_name = ] N'category_name'
Název kategorie upozornění.
@category_name je sysname, s výchozím nastavením NULL
.
[ @wmi_namespace = ] N'wmi_namespace'
Obor názvů rozhraní WMI, který se má dotazovat na události.
@wmi_namespace je sysname s výchozím nastavením NULL
. Podporují se jenom obory názvů na místním serveru.
[ @wmi_query = ] N'wmi_query'
Dotaz, který určuje událost rozhraní WMI pro výstrahu.
@wmi_query je nvarchar(512) s výchozím nastavením NULL
.
Hodnoty návratového kódu
0
(úspěch) nebo 1
(selhání).
Sada výsledků
Žádné.
Poznámky
sp_add_alert
musí být spuštěna z databáze msdb
.
Jedná se o okolnosti, za kterých se do protokolu aplikací systému Windows odesílají chyby a zprávy generované sql Serverem a aplikacemi SYSTÉMU SQL Server, a proto mohou vyvolat výstrahy:
- Chyby závažnosti 19 nebo vyšší
sys.messages
- Libovolný
RAISERROR
příkaz vyvolaný syntaxíWITH LOG
- Jakákoli
sys.messages
chyba změněná nebo vytvořená pomocísp_altermessage
- Jakákoli událost protokolovaná pomocí
xp_logevent
SQL Server Management Studio poskytuje snadný, grafický způsob správy celého systému výstrah a je doporučeným způsobem konfigurace infrastruktury výstrah.
Pokud upozornění nefunguje správně, zkontrolujte, jestli:
Služba agenta SQL Serveru je spuštěná.
Událost se objevila v protokolu aplikací pro Windows.
Výstraha je povolená.
Události vygenerované s
xp_logevent
nastanou v databázimaster
. Proto neaktivuje výstrahu,xp_logevent
pokud není @database_name pro výstrahumaster
neboNULL
.
Dovolení
Ve výchozím nastavení mohou provádět pouze členové sp_add_alert
pevné role serveru .
Příklady
Příklad 1 – Přidání upozornění pro úlohu
Následující příklad přidá výstrahu (testovací výstrahu Back up the AdventureWorks2022 Database
), která spustí úlohu při spuštění.
Poznámka:
Tento příklad předpokládá, že zpráva 55001 a Back up the AdventureWorks2022 Database
úloha již existují. Příklad je zobrazen pouze pro ilustrativní účely.
USE msdb;
GO
EXEC 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
Příklad 2 – Přidání výstrahy pro prahovou hodnotu replikace
Následující příklad přidá upozornění, které vás upozorní, když transakce replikace překročila prahovou hodnotu latence:
EXEC 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
Související obsah
- sp_add_notification (Transact-SQL)
- sp_altermessage (Transact-SQL)
- sp_delete_alert (Transact-SQL)
- sp_help_alert (Transact-SQL)
- sp_update_alert (Transact-SQL)
- sys.sysperfinfo (Transact-SQL)
- uložené procedury systému (Transact-SQL)