Partager via


Create a WMI Event Alert

Cette rubrique explique comment déclencher une alerte SQL Server Agent lorsqu’un événement de SQL Server spécifique se produit et qui est surveillé par le fournisseur WMI pour les événements de serveur dans SQL Server 2014 à l’aide de SQL Server Management Studio ou transact-SQL.

Pour plus d’informations sur l’utilisation du fournisseur WMI pour surveiller les événements SQL Server, consultez Concepts du fournisseur WMI pour les événements de serveur. Pour plus d’informations sur les autorisations nécessaires pour recevoir des notifications d’alertes d’événements WMI, consultez Sélectionner un compte pour le service SQL Server Agent. Pour plus d’informations sur WQL, consultez Utilisation de WQL avec le fournisseur WMI pour les événements de serveur.

Dans cette rubrique

Avant de commencer

Limitations et restrictions

  • 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.

  • 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.

  • Seuls les espaces de noms WMI se trouvant sur l’ordinateur qui exécute SQL Server Agent sont pris en charge.

Sécurité

Autorisations

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

Utilisation de SQL Server Management Studio

Pour créer une alerte d'événement WMI

  1. Dans l' Explorateur d'objets , cliquez sur le signe plus (+) pour développer le serveur sur lequel vous souhaitez créer une alerte d'événement WMI.

  2. Cliquez sur le signe plus (+) pour développer Agent SQL Server.

  3. Cliquez avec le bouton droit sur Alertes , puis sélectionnez Nouvelle alerte.

  4. Dans la boîte de dialogue Nouvelle alerte , dans la zone Nom , entrez un nom pour cette alerte.

  5. Sélectionnez la case à cocher Activer afin d'activer l'alerte à exécuter. Par défaut, l'option Activer est sélectionnée.

  6. Dans la liste Type , sélectionnez Alerte d'événement WMI.

  7. Sous Définition d’une alerte d’événement WMI, dans la zone Espace de noms , spécifiez l’espace de noms WMI pour l’instruction WQL (WMI Query Language) qui identifie l’événement WMI qui déclenchera cette alerte.

  8. Dans la zone Requête , spécifiez l'instruction WQL qui identifie l'événement auquel cette alerte répond.

  9. Cliquez sur OK.

Utilisation de Transact-SQL

Pour créer une alerte d'événement WMI

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

    -- creates a WMI event alert that retrieves all event properties for any ALTER_TABLE event that occurs on table AdventureWorks2012.Sales.SalesOrderDetail  
    -- This example assumes that the message 54001 already exists.  
    USE msdb ;  
    GO  
    
    EXEC dbo.sp_add_alert  
        @name = N'Test Alert 2',  
        @message_id = 54001  
        @notification_message = N'Error 54001 has occurred on the Sales.SalesOrderDetail table on the AdventureWorks2012 database. Please see the following information...',  
        @wmi_namespace = '\\.\root\Microsoft\SqlServer\ServerEvents\,  
        @wmi_query = N'SELECT * FROM ALTER_TABLE   
    WHERE DatabaseName = 'AdventureWorks2012' AND SchemaName = 'Sales'   
        AND ObjectType='Table' AND ObjectName = 'SalesOrderDetail'';  
    GO  
    

Pour plus d’informations, consultez sp_add_alert (Transact-SQL).