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
Naplóz egy felhasználó által megadott üzenetet az SQL Server naplófájljában és a Windows eseménynaplójában.
xp_logevent segítségével anélkül küldhet riasztást, hogy üzenetet küldene az ügyfélnek.
Transact-SQL szintaxis konvenciói
Szintaxis
xp_logevent { error_number , 'message' } [ , 'severity' ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
error_number
A felhasználó által megadott hibaszám nagyobb, mint 50000. A maximális érték 2147483647 (2^31 – 1).
'üzenet'
Legfeljebb 2048 karakter hosszúságú karaktersorozat.
'súlyosság'
A három karaktersorozat egyike: INFORMATIONAL, WARNINGvagy ERROR.
súlyossági megadása nem kötelező, alapértelmezés szerint INFORMATIONAL.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Eredményhalmaz
xp_logevent a következő hibaüzenetet adja vissza a mellékelt kód példájához:
The command(s) completed successfully.
Megjegyzések
Amikor Transact-SQL eljárásokból, eseményindítókból, kötegekből stb. érkező üzeneteket küld, xp_logeventhelyett használja a RAISERROR utasítást.
xp_logevent nem hív meg egy ügyfél üzenetkezelőt, és nem állítja be a @@ERROR. Ha üzeneteket szeretne írni a Windows eseménynaplójába és az SQL Server egy SQL Server-példányon belüli hibanaplófájljába, hajtsa végre a RAISERROR utasítást.
Engedélyek
A master adatbázis db_owner rögzített adatbázis-szerepkörében, illetve a sysadmin rögzített kiszolgálói szerepkörben való tagságra van szükség.
Példák
Az alábbi példa naplózza az üzenetet, és változókat ad át az üzenetnek a Windows Eseménynaplóban.
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;
EXECUTE xp_logevent 60000,
@@MESSAGE, informational;