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.
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 (mit dem Standardwert 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
Erfordert die Mitgliedschaft in der festen Datenbankrolle db_owner in der master-Datenbank oder 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)
DECLARE @@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