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
, WARNING
ou ERROR
. la gravité est facultative, avec la valeur par défaut INFORMATIONAL
.
Valeurs des codes de retour
0
(réussite) or 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;