xp_logevent (Transact-SQL)
Protokolliert eine benutzerdefinierte Nachricht in der SQL Server-Protokolldatei und in der Windows-Ereignisanzeige. Mit xp_logevent kann eine Warnung gesendet werden, ohne eine Nachricht an den Client zu senden.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
xp_logevent { error_number , 'message' } [ , 'severity' ]
Argumente
error_number
Eine benutzerdefinierte Fehlernummer, die größer als 50.000 ist. Der Maximalwert ist 2147483647 (2^31 - 1).' message '
Eine Zeichenfolge mit maximal 2048 Zeichen.' severity '
Eine der drei folgenden Zeichenfolgen: INFORMATIONAL, WARNING oder ERROR. severity ist optional, und der Standardwert ist INFORMATIONAL.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
xp_logevent gibt für das Codebeispiel die folgende Fehlermeldung zurück:
The command(s) completed successfully.
Hinweise
Verwenden Sie beim Senden von Nachrichten von Transact-SQL-Prozeduren, -Triggern, -Batches usw. statt xp_logevent die RAISERROR-Anweisung. xp_logevent ruft nicht den Nachrichtenhandler eines Clients auf und legt nicht @@ERROR fest. Führen Sie die RAISERROR-Anweisung aus, um Nachrichten in die Windows-Ereignisanzeige und in die SQL Server-Fehlerprotokolldatei in einer Instanz von SQL Server zu schreiben.
Berechtigungen
Setzt eine Mitgliedschaft für die feste Datenbankrolle db_owner in der master-Datenbank oder für die feste Serverrolle sysadmin voraus.
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),DECLARE @@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;
Siehe auch
Verweis
Gespeicherte Systemprozeduren (Transact-SQL)
Allgemeine erweiterte gespeicherte Prozeduren (Transact-SQL)