Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Développer Réduire

sp_add_alert (Transact-SQL)


sp_add_alert [ @name = ] 'name' 
     [ , [ @message_id = ] message_id ] 
     [ , [ @severity = ] severity ] 
     [ , [ @enabled = ] enabled ]
     [ , [ @delay_between_responses = ] delay_between_responses ] 
     [ , [ @notification_message = ] 'notification_message' ] 
     [ , [ @include_event_description_in = ] include_event_description_in ] 
     [ , [ @database_name = ] 'database' ] 
     [ , [ @event_description_keyword = ] 'event_description_keyword_pattern' ] 
     [ , { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ] 
     [ , [ @raise_snmp_trap = ] raise_snmp_trap ] 
     [ , [ @performance_condition = ] 'performance_condition' ] 
     [ , [ @category_name = ] 'category' ] 
     [ , [ @wmi_namespace = ] 'wmi_namespace' ]
     [ , [ @wmi_query = ] 'wmi_query' ]

[ @name = ] 'name'

Nom de l'alerte. Ce nom apparaît dans le message envoyé par courrier électronique ou par radiomessagerie en réponse à l'alerte. Il doit être unique et peut contenir le caractère de pourcentage (%). L'argument name est de type sysname et n'a pas de valeur par défaut.

[ @message_id = ] message_id

Numéro du message d'erreur définissant l'alerte. (Il correspond normalement à un numéro d'erreur dans la table sysmessages). message_id est de type int, avec 0 comme valeur par défaut. Si l'argument severity est utilisé pour définir l'alerte, la valeur de message_id doit être 0 ou NULL.

RemarqueRemarque

Seules les erreurs sysmessages figurant dans le journal des applications Microsoft Windows peuvent provoquer le déclenchement d'une alerte.

[ @severity = ] severity

Niveau de gravité définissant l'alerte (compris entre 1 et 25). Tout message SQL Server stocké dans la table sysmessages envoyé vers le journal des applications Microsoft Windows avec les causes de gravité indiquées provoque l'envoi de l'alerte. L'argument severity est de type int, avec 0 comme valeur par défaut. Si l'argument message_id est utilisé pour définir l'alerte, la valeur de severity doit être 0.

[ @enabled = ] enabled

Indique l'état actuel de l'alerte. L'argument enabled est de type tinyint, avec la valeur 1 par défaut (activé). La valeur 0 indique que l'alerte n'est pas activée et qu'elle ne se déclenche pas.

[ @delay_between_responses = ] delay_between_responses

Période d'attente, en secondes, qui s'écoule entre les réponses aux alertes. L'argument delay_between_responses est de type int, avec 0 comme valeur par défaut. Cette valeur indique qu'il n'y a aucun délai d'attente entre les réponses (chaque occurrence de l'alerte génère une réponse). La réponse peut prendre l'une des formes suivantes, ou les deux :

  • Une ou plusieurs notifications envoyées par courrier électronique ou par radiomessagerie

  • Un travail à exécuter

En définissant cette valeur, il est possible d'éviter, par exemple, l'envoi d'un flot de messages par courrier électronique lorsqu'une alerte se produit à plusieurs reprises en peu de temps.

[ @notification_message = ] 'notification_message'

Message de notification supplémentaire facultatif envoyé à l'opérateur par messagerie électronique, par net send (envoi réseau) ou par radiomessagerie. L'argument notification_message est de type nvarchar(512), avec NULL comme valeur par défaut. La spécification de l'argument notification_message est utile pour l'ajout de remarques particulières, par exemple l'indication de procédures correctives.

[ @include_event_description_in = ] include_event_description_in

Argument à utiliser si la description de l'erreur SQL Server doit être incluse dans le message de notification. L'argument include_event_description_in est de type tinyint, avec  5 comme valeur par défaut (messagerie électronique et net send). Il peut prendre une ou plusieurs des valeurs suivantes, associées à un opérateur logique OR.

ImportantImportant

Les options Radiomessagerie et NET SEND ne seront pas supprimés de l'Agent SQL Server dans une version future de Microsoft SQL Server. Évitez d'utiliser ces fonctionnalités dans une nouvelle tâche de développement et prévoyez de modifier les applications qui les utilisent actuellement.

Valeur

Description

0 (par défaut)

Aucune

1

Courrier électronique

2

Récepteur de radiomessagerie

4

net send

[ @database_name = ] 'database'

Base de données dans laquelle l'erreur doit survenir pour que l'alerte soit déclenchée. Si database n'est pas utilisé, l'alerte se déclenche indépendamment de l'endroit où l'erreur s'est produite. database est de type sysname. Les noms placés entre crochets ([ ]) ne sont pas autorisés. La valeur par défaut est NULL.

[ @event_description_keyword = ] 'event_description_keyword_pattern'

Séquence de caractères à laquelle la description de l'erreur SQL Server doit être conforme. Les caractères correspondant au modèle d'expression Transact-SQL LIKE sont admis. L'argument event_description_keyword_pattern est de type nvarchar(100), avec NULL comme valeur par défaut. Ce paramètre est utile pour filtrer les noms d'objets (par exemple, %customer_table%).

[ @job_id = ] job_id

Numéro d'identification du travail à exécuter en réponse à l'alerte. L'argument job_id est de type uniqueidentifier, avec NULL comme valeur par défaut.

[ @job_name = ] 'job_name'

Nom du travail à exécuter en réponse à l'alerte. L'argument job_name est de type sysname, avec NULL comme valeur par défaut.

RemarqueRemarque

Vous devez définir la valeur de job_id ou de job_name, mais pas les deux valeurs à la fois.

[ @raise_snmp_trap = ] raise_snmp_trap

N'est pas implémenté dans SQL Server version 7.0. L'argument raise_snmp_trap est de type tinyint, avec 0 comme valeur par défaut.

[ @performance_condition = ] 'performance_condition'

Valeur exprimée dans le format 'itemcomparatorvalue'. L'argument performance_condition est de type nvarchar(512), avec NULL comme valeur par défaut, et est constitué des éléments suivants.

Élément de format

Description

Item

Objet de performances, compteur de performances ou instance nommée du compteur.

Comparator

Un des opérateurs suivants : >, < ou =

Value

Valeur numérique du compteur.

[ @category_name = ] 'category'

Nom de la catégorie d'alerte. category est de type sysname, avec NULL comme valeur par défaut.

[ @wmi_namespace= ] 'wmi_namespace'

Espace de noms WMI permettant de rechercher des événements via des requêtes. L'argument wmi_namespace est de type sysname, avec NULL comme valeur par défaut. Seuls les espaces de noms situés sur le serveur local sont pris en charge.

[ @wmi_query= ] 'wmi_query'

Requête spécifiant l'événement WMI pour l'alerte. L'argument wmi_query est de type nvarchar(512), avec NULL comme valeur par défaut.

0 (succès) ou 1 (échec)

La procédure sp_add_alert doit être exécutée à partir de la base de données msdb.

La liste suivante indique les circonstances pour lesquelles les erreurs ou les messages générés par SQL Server et les applications SQL Server sont transmis au journal des applications Windows et peuvent dès lors déclencher des alertes :

  • les erreurs sys.messages d'un niveau de gravité égal ou supérieur à 19 ;

  • toute instruction RAISERROR appelée avec la syntaxe WITH LOG ;

  • toute erreur sys.messages modifiée ou créée avec la procédure sp_altermessage ;

  • tout événement consigné avec la procédure xp_logevent.

SQL Server Management Studio est un outil simple, fonctionnant en mode graphique, qui permet de gérer tout le système d'alerte. Son utilisation est recommandée pour configurer une infrastructure d'alertes.

Si une alerte ne fonctionne pas correctement, vérifiez que :

  • Le service Agent SQL Server est en cours d'exécution.

  • L'événement est consigné dans le journal des applications Windows.

  • L'alerte est activée.

  • Les événements créés à l'aide de xp_logevent surviennent dans la base de données master. Ainsi, la procédure xp_logevent ne déclenche pas d'alerte sauf si la valeur de @database_name pour l'alerte est 'master' ou NULL.

Par défaut, seuls les membres du rôle de serveur fixe sysadmin peuvent exécuter la procédure sp_add_alert.

L'exemple suivant ajoute une alerte (Test Alert) qui exécute le travail Back up the AdventureWorks2008R2 Database lorsqu'elle se déclenche.

RemarqueRemarque

Dans cet exemple, on suppose que le message 55001 et le travail Back up the AdventureWorks2008R2 Database existent déjà. Cet exemple n'est donné qu'à titre indicatif.

USE msdb ;
GO

EXEC dbo.sp_add_alert
    @name = N'Test Alert',
    @message_id = 55001, 
   @severity = 0, 
   @notification_message = N'Error 55001 has occurred. The database will be backed up...', 
   @job_name = N'Back up the AdventureWorks2008R2 Database' ;
GO

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft