Megosztás a következőn keresztül:


xp_logevent (Transact-SQL)

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;