xp_logevent (Transact-SQL)
van toepassing op:SQL Server-
Registreert een door de gebruiker gedefinieerd bericht in het SQL Server-logboekbestand en in het Windows-gebeurtenislogboek.
xp_logevent
kan worden gebruikt om een waarschuwing te verzenden zonder een bericht naar de client te verzenden.
Transact-SQL syntaxisconventies
Syntaxis
xp_logevent { error_number , 'message' } [ , 'severity' ]
Argumenten
Belangrijk
Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.
error_number
Een door de gebruiker gedefinieerd foutnummer dat groter is dan 50000
. De maximumwaarde is 2147483647
(2^31 - 1).
'bericht'
Een tekenreeks met maximaal 2048 tekens.
'ernst'
Een van de drie tekenreeksen: INFORMATIONAL
, WARNING
of ERROR
.
ernst is optioneel, met een standaardwaarde van INFORMATIONAL
.
Codewaarden retourneren
0
(geslaagd) of 1
(mislukt).
Resultatenset
xp_logevent
retourneert het volgende foutbericht voor het opgenomen codevoorbeeld:
The command(s) completed successfully.
Opmerkingen
Wanneer u berichten verzendt vanuit Transact-SQL procedures, triggers, batches enzovoort, gebruikt u de RAISERROR
-instructie in plaats van xp_logevent
.
xp_logevent
roept geen berichthandler van een client aan of stelt @@ERROR
in. Als u berichten wilt schrijven naar het Windows-gebeurtenislogboek en naar het SQL Server-foutenlogboekbestand binnen een exemplaar van SQL Server, voert u de RAISERROR
-instructie uit.
Machtigingen
Vereist lidmaatschap van de db_owner vaste databaserol in de master
-database of lidmaatschap van de sysadmin vaste serverfunctie.
Voorbeelden
In het volgende voorbeeld wordt het bericht logboeken, met variabelen die zijn doorgegeven aan het bericht in De Logboeken van Windows.
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;