Teilen über


xp_logevent (Transact-SQL)

Gilt für: SQL Server

Protokolliert eine benutzerdefinierte Nachricht in der SQL Server-Protokolldatei und im Windows-Ereignisprotokoll. xp_logevent kann verwendet werden, um eine Benachrichtigung zu senden, ohne eine Nachricht an den Client zu senden.

Transact-SQL-Syntaxkonventionen

Syntax

xp_logevent { error_number , 'message' } [ , 'severity' ]

Argumente

error_number

Eine benutzerdefinierte Fehlernummer, die größer als ist 50000. Der Maximalwert ist 2147483647 (2^31 - 1).

"message"

Eine Zeichenfolge mit maximal 2048 Zeichen.

"schweregrad"

Eine von drei Zeichenfolgen: INFORMATIONAL, , WARNINGoder ERROR. schweregrad ist optional, mit einem Standardwert von INFORMATIONAL.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

xp_logevent gibt die folgende Fehlermeldung für das enthaltene Codebeispiel zurück:

The command(s) completed successfully.

Hinweise

Wenn Sie Nachrichten aus Transact-SQL-Prozeduren senden, trigger, Batches usw., verwenden Sie die RAISERROR Anweisung anstelle von xp_logevent. xp_logevent ruft keinen Nachrichtenhandler eines Clients auf oder legt ihn fest @@ERROR. Führen Sie die RAISERROR Anweisung aus, um Nachrichten in das Windows-Ereignisprotokoll und in die SQL Server-Fehlerprotokolldatei in einer Instanz von SQL Server zu schreiben.

Berechtigungen

Erfordert die Mitgliedschaft in der db_owner festen Datenbankrolle in der master Datenbank oder die Mitgliedschaft in der festen Serverrolle "sysadmin ".

Beispiele

Im folgenden Beispiel wird die Nachricht (mit den an sie übergebenen Variablen) in der Windows-Ereignisanzeige protokolliert.

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;