Erstellen einer WMI-Ereigniswarnung

Gilt für:SQL ServerAzure SQL Managed Instance

Wichtig

In Azure SQL Managed Instance werden derzeit die meisten, aber nicht alle, SQL Server-Agent-Features unterstützt. Details dazu finden Sie unter T-SQL-Unterschiede zwischen Azure SQL Managed Instance und SQL Server.

In diesem Artikel wird beschrieben, wie eine Warnung des SQL Server-Agents mithilfe von SQL Server Management Studio oder Transact-SQL erstellt wird, die ausgelöst wird, wenn ein bestimmtes SQL Server-Ereignis auftritt, das vom WMI-Anbieter für Serverereignisse in SQL Server überwacht wird.

Informationen zur Verwendung der WMI-Anbieter zum Überwachen von SQL Server-Ereignissen finden Sie unter Klassen und Eigenschaften für den WMI-Anbieter für Serverereignisse. Informationen zu den Berechtigungen, die erforderlich sind, um Benachrichtigungen zu WMI-Ereigniswarnungen zu erhalten, finden Sie unter Auswählen eines Kontos für den SQL Server-Agent-Dienst. Weitere Informationen zu WQL finden Sie unter Verwenden von WQL mit dem WMI-Anbieter für Serverereignisse.

Einschränkungen

  • Mit SQL Server Management Studio lässt sich das gesamte Warnungssystem auf einfache Weise mit einer grafischen Oberfläche verwalten. Dies ist die empfohlene Vorgehensweise, um eine Warnungsinfrastruktur zu konfigurieren.

  • Ereignisse, die mit xp_logevent generiert werden, treten in der master-Datenbank auf. Daher löst xp_logevent erst dann eine Warnung aus, wenn der @database_name für die Warnung 'master' oder NULL entspricht.

  • Es werden nur WMI-Namespaces auf dem Computer unterstützt, auf dem der SQL Server-Agent ausgeführt wird.

Berechtigungen

Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin die Prozedur sp_add_alertausführen.

Verwenden von SQL Server Management Studio

  1. Wählen Sie im Objekt-Explorer das Pluszeichen aus, um den Server zu erweitern, auf dem Sie eine WMI-Ereigniswarnung erstellen möchten.

  2. Klicken Sie auf das Pluszeichen, um SQL Server-Agentzu erweitern.

  3. Klicken Sie mit der rechten Maustaste auf Warnungen , und wählen Sie Neue Warnungaus.

  4. Geben Sie im Dialogfeld Neue Warnung einen Namen für diese Warnung ein.

  5. Aktivieren Sie das Kontrollkästchen Aktivieren , um die Ausführung der Warnung zu ermöglichen. Standardmäßig ist Aktivieren aktiviert.

  6. Klicken Sie in der Liste Typ auf WMI-Ereigniswarnung.

  7. Geben Sie unter WMI-Ereigniswarnungsdefinitionim Feld Namespace den WMI-Namespace für die WQL-Anweisung (WMI Query Language) an, die das WMI-Ereignis identifiziert, welches diese Warnung auslöst.

  8. Geben Sie im Feld Abfrage die WQL-Anweisung an, die das Ereignis identifiziert, auf das diese Warnung reagiert.

  9. Klicken Sie auf OK.

Verwenden von Transact-SQL

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.

    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ächste Schritte