xp_logevent (Transact-SQL)
platí pro:SQL Server
Zaznamená uživatelem definovanou zprávu v souboru protokolu SQL Serveru a v protokolu událostí systému Windows.
xp_logevent
lze použít k odeslání výstrahy bez odeslání zprávy klientovi.
Syntax
xp_logevent { error_number , 'message' } [ , 'severity' ]
Argumenty
Důležitý
Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.
error_number
Uživatelem definované číslo chyby větší než 50000
. Maximální hodnota je 2147483647
(2^31 –1).
zpráva
Řetězec znaků s maximálně 2048 znaky.
'závažnosti'
Jeden ze tří znaků řetězců: INFORMATIONAL
, WARNING
nebo ERROR
.
závažnosti je nepovinný s výchozím nastavením INFORMATIONAL
.
Návratové hodnoty kódu
0
(úspěch) nebo 1
(selhání).
Sada výsledků
xp_logevent
vrátí následující chybovou zprávu pro příklad zahrnutého kódu:
The command(s) completed successfully.
Poznámky
Když odesíláte zprávy z Transact-SQL procedur, triggerů, dávek atd., použijte místo xp_logevent
příkaz RAISERROR
.
xp_logevent
nevolá obslužnou rutinu zprávy klienta ani @@ERROR
. Pokud chcete zapisovat zprávy do protokolu událostí systému Windows a do souboru protokolu chyb SQL Serveru v instanci SQL Serveru, spusťte příkaz RAISERROR
.
Dovolení
Vyžaduje členství v db_owner pevné databázové roli v databázi master
nebo členství v správce systému pevné role serveru.
Příklady
Následující příklad zaznamená zprávu s proměnnými předanými do zprávy v Prohlížeči událostí systému Windows.
DECLARE @@TABNAME VARCHAR(30),
@@USERNAME VARCHAR(30),
@@MESSAGE VARCHAR(255);
SET @@TABNAME = 'customers';
SET @@USERNAME = USER_NAME();
SELECT @@MESSAGE = 'The table ' + @@TABNAME + ' is not owned by the user
' + @@USERNAME + '.';
USE master;
EXEC xp_logevent 60000, @@MESSAGE, informational;
Související obsah
- PRINT (Transact-SQL)
- RAISERROR (Transact-SQL)
- uložené procedury systému (Transact-SQL)
- Obecné rozšířené uložené procedury (Transact-SQL)