Creare un avviso per evento WMICreate a WMI Event Alert

In questo argomento viene descritto come creare un avviso di SQL ServerSQL Server Agent che viene generato quando si verifica un evento specifico di SQL ServerSQL Server monitorato dal provider WMI per eventi del server in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to a SQL ServerSQL Server Agent alert that is raised when a specific SQL ServerSQL Server event occurs that is monitored by the WMI Provider for Server Events in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Per informazioni sull'uso del provider WMI per il monitoraggio degli eventi del SQL ServerSQL Server , vedere Classi e proprietà del provider WMI per eventi del server.For information about the using the WMI Provider to monitor SQL ServerSQL Server events, see WMI Provider for Server Events Classes and Properties. Per informazioni sulle autorizzazioni necessarie per ricevere notifiche di avviso per eventi WMI, vedere Selezionare un account per il servizio SQL Server Agent.For information about the permissions necessary to receive WMI event alert notifications, see Select an Account for the SQL Server Agent Service. Per altre informazioni su WQL, vedere Utilizzo di WQL con il provider WMI per eventi del server.For more information about WQL, see Using WQL with the WMI Provider for Server Events.

Contenuto dell'argomentoIn This Topic

Prima di iniziareBefore You Begin

Limitazioni e restrizioniLimitations and Restrictions

  • SQL Server Management StudioSQL Server Management Studio include un semplice strumento grafico per la gestione del sistema di avvisi ed è lo strumento consigliato per la configurazione di un'infrastruttura di avvisi. provides an easy, graphical way to manage the entire alerting system and is the recommended way to configure an alert infrastructure.

  • Gli eventi generati con la stored procedure xp_logevent si verificano nel database master.Events generated with xp_logevent occur in the master database. Pertanto, xp_logevent genera un avviso solo se @database_name per l'avviso è 'master' o NULL.Therefore, xp_logevent does not trigger an alert unless the @database_name for the alert is 'master' or NULL.

  • Sono supportati solo gli spazi dei nomi WMI sul computer in cui è in esecuzione SQL ServerSQL Server Agent.Only WMI namespaces on the computer that runs SQL ServerSQL Server Agent are supported.

SecuritySecurity

PermissionsPermissions

Per impostazione predefinita, solo i membri del ruolo predefinito del server sysadmin possono eseguire sp_add_alert.By default, only members of the sysadmin fixed server role can execute sp_add_alert.

Utilizzo di SQL Server Management StudioUsing SQL Server Management Studio

Per creare un avviso per evento WMITo create a WMI event alert

  1. In Esplora oggetti fare clic sul segno più per espandere il server in cui si desidera creare un avviso di evento WMI.In Object Explorer, click the plus sign to expand the server where you want to create a WMI event alert.

  2. Fare clic sul segno più per espandere SQL Server Agent.Click the plus sign to expand SQL Server Agent.

  3. Fare clic con il pulsante destro del mouse su Avvisi e selezionare Nuovo avviso.Right-click Alerts and select New Alert.

  4. Nella casella Nome della finestra di dialogo Nuovo avviso immettere un nome per l'avviso.In the New Alert dialog box, in the Name box, enter a name for this alert.

  5. Selezionare la casella di controllo Abilita per abilitare l'esecuzione dell'avviso.Check the Enable check box to enable the alert to run. Per impostazione predefinita, l'opzione Abilita è selezionata.By default, Enable is checked.

  6. Nell'elenco Tipo selezionare Avviso per evento WMI.In the Type list, select WMI event alert.

  7. Nella casella Spazio dei nomiin Definizione di avviso di evento WMI specificare lo spazio dei nomi WMI da usare per l'istruzione WQL (WMI Query Language) che identifica l'evento WMI che attiva l'avviso.Under WMI event alert definition, in the Namespace box, specify the WMI namespace for the WMI Query Language (WQL) statement that identifies which WMI event will trigger this alert.

  8. Nella casella Query specificare l'istruzione WQL che identifica l'evento al quale risponde l'avviso.In the Query box, specify the WQL statement that identifies the event that this alert responds to.

  9. Scegliere OK.Click OK.

Utilizzo di Transact-SQLUsing Transact-SQL

Per creare un avviso per evento WMITo create a WMI event alert

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

    -- 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.',  
        @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  
    

Per altre informazioni, vedere sp_add_alert.For more information, see sp_add_alert (Transact-SQL).