Delen via


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, WARNINGof 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 @@ERRORin. 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;