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
Important
Les arguments des procédures stockées étendues doivent être entrés dans l’ordre spécifique, comme décrit dans la section syntaxe. Si les paramètres sont entrés hors ordre, un message d’erreur se produit.
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;