Partager via


xp_logevent (Transact-SQL)

S'applique à : SQL Server

Enregistre un message défini par l’utilisateur dans le fichier journal SQL Server et dans le journal des événements Windows. xp_logevent peut être utilisé pour envoyer une alerte sans envoyer de message au client.

Conventions de la syntaxe Transact-SQL

Syntaxe

xp_logevent { error_number , 'message' } [ , 'severity' ]

Arguments

error_number

Nombre d’erreurs défini par l’utilisateur supérieur à 50000. La valeur maximale est 2147483647 (2^31 - 1).

'message'

Chaîne de caractères avec un maximum de 2048 caractères.

'gravité'

Une des trois chaînes de caractères : INFORMATIONAL, WARNINGou ERROR. la gravité est facultative, avec la valeur par défaut INFORMATIONAL.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Jeu de résultats

xp_logevent retourne le message d’erreur suivant pour l’exemple de code inclus :

The command(s) completed successfully.

Notes

Lorsque vous envoyez des messages à partir de procédures Transact-SQL, de déclencheurs, de lots, et ainsi de suite, utilisez l’instruction RAISERROR au lieu de xp_logevent. xp_logevent n’appelle pas un gestionnaire de messages d’un client, ni défini @@ERROR. Pour écrire des messages dans le journal des événements Windows et dans le fichier journal des erreurs SQL Server dans une instance de SQL Server, exécutez l’instruction RAISERROR .

autorisations

Nécessite l’appartenance au rôle de base de données fixe db_owner dans la master base de données ou l’appartenance au rôle serveur fixe sysadmin .

Exemples

Cet exemple enregistre le message dans l'Observateur d'événements Windows et transmet les variables au message.

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;