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
, , WARNING
oder 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;