Dela via


Skapa en WMI-händelseavisering

gäller för:SQL ServerAzure SQL Managed Instance

Viktig

Azure SQL Managed Instancestöds de flesta, men inte alla SQL Server Agent-funktioner för närvarande. Mer information finns i T-SQL-skillnader mellan Azure SQL Managed Instance och SQL Server.

Den här artikeln beskriver hur en SQL Server Agent-avisering som utlöses när en specifik SQL Server-händelse inträffar som övervakas av WMI-providern för serverhändelser i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.

Information om hur du använder WMI-providern för att övervaka SQL Server-händelser finns i WMI-provider för klasser och egenskaper för serverhändelser. Information om de behörigheter som krävs för att ta emot aviseringar om WMI-händelser finns i Välj ett konto för SQL Server Agent Service. För mer information om WQL, se Använda WQL med WMI-leverantören för serverhändelser.

Begränsningar och restriktioner

  • SQL Server Management Studio är ett enkelt, grafiskt sätt att hantera hela aviseringssystemet och är det rekommenderade sättet att konfigurera en aviseringsinfrastruktur.

  • Händelser som genereras med xp_logevent inträffa i master-databasen. Därför utlöser xp_logevent ingen avisering om inte @database_name för aviseringen är 'master' eller NULL.

  • Endast WMI-namnområden på datorn som kör SQL Server Agent stöds.

Behörigheter

Som standard kan endast medlemmar i sysadmin fast serverroll köra sp_add_alert.

Använda SQL Server Management Studio

  1. I Object Explorer väljer plustecknet för att expandera servern där du vill skapa en WMI-händelseavisering.

  2. Välj plustecknet för att expandera SQL Server Agent.

  3. Klicka med höger musknapp på Aviseringar och välj Ny avisering.

  4. I dialogrutan Ny avisering i rutan Namn anger du ett namn för den här aviseringen.

  5. Markera kryssrutan Aktivera så att aviseringen kan köras. Som standard är Aktivera markerat.

  6. I listan Typ väljer du WMI-händelseavisering.

  7. Under WMI-händelseaviseringsdefinitioneni rutan Namnområde anger du WMI-namnområdet för WMI Query Language-instruktionen (WQL) som identifierar vilken WMI-händelse som utlöser den här aviseringen.

  8. I rutan Query anger du WQL-instruktionen som identifierar händelsen som den här aviseringen svarar på.

  9. Välj OK.

Använd Transact-SQL

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör.

    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 AdventureWorks2022 database.',
        @wmi_namespace = '\.\root\Microsoft\SqlServer\ServerEvents',
        @wmi_query = N'SELECT * FROM ALTER_TABLE
    WHERE DatabaseName = ''AdventureWorks2022'' AND SchemaName = ''Sales''
    AND ObjectType=''Table'' AND ObjectName = ''SalesOrderDetail''';
    GO
    

Nästa steg