Sdílet prostřednictvím


sp_add_alert (Transact-SQL)

platí pro:SQL Server

Vytvoří výstrahu.

Transact-SQL konvence syntaxe

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 0není 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 sendozná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 E-mail
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:

LIKETransact-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 NULLa 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ázi master. Proto neaktivuje výstrahu, xp_logevent pokud není @database_name pro výstrahu master nebo NULL.

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