Erstellen einer WMI-Ereignisbenachrichtigung
Gilt für:SQL Server
azure SQL Managed Instance
Wichtig
In azure SQL Managed Instancewerden die meisten, aber nicht alle SQL Server-Agent-Features derzeit unterstützt. Weitere Informationen finden Sie unter Unterschiede in T-SQL zwischen Azure SQL Managed Instance und SQL Server.
In diesem Artikel wird beschrieben, wie eine SQL Server-Agent-Warnung ausgelöst wird, die ausgelöst wird, wenn ein bestimmtes SQL Server-Ereignis auftritt, das vom WMI-Anbieter für Serverereignisse in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL überwacht wird.
Informationen zur Verwendung des WMI-Anbieters zum Überwachen von SQL Server-Ereignissen finden Sie unter WMI-Anbieter für Serverereignisse Klassen und Eigenschaften. Informationen zu den Berechtigungen, die zum Empfangen von WMI-Ereignisbenachrichtigungen erforderlich sind, 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.
Beschränkungen und Einschränkungen
SQL Server Management Studio bietet eine einfache, grafische Möglichkeit zum Verwalten des gesamten Warnungssystems und ist die empfohlene Methode zum Konfigurieren einer Warnungsinfrastruktur.
Ereignisse, die mit
xp_logevent
generiert werden, treten in dermaster
-Datenbank auf. Daher löstxp_logevent
keine Warnung aus, es sei denn, der@database_name
für die Warnung ist'master'
oder NULL.Nur WMI-Namespaces auf dem Computer, auf dem SQL Server-Agent ausgeführt wird, werden unterstützt.
Erlaubnisse
Standardmäßig können nur Mitglieder der festen Serverrolle sysadminsp_add_alert
ausführen.
Verwenden von SQL Server Management Studio
Wählen Sie im Objekt-Explorer das Pluszeichen aus, um den Server zu erweitern, auf dem Sie eine WMI-Ereignisbenachrichtigung erstellen möchten.
Wählen Sie das Pluszeichen, um SQL Server Agentzu erweitern.
Klicken Sie mit der rechten Maustaste auf Warnungen, und wählen Sie Neue Warnungaus.
Geben Sie im Dialogfeld Neue Warnung im Feld Name einen Namen für diese Warnung ein.
Aktivieren Sie das Kontrollkästchen Aktivieren, um die Ausführung der Warnung zu aktivieren. Standardmäßig ist Aktivieren ausgewählt.
Wählen Sie in der Typ Liste WMI-Ereigniswarnungaus.
Geben Sie unter WMI-Ereigniswarnungsdefinitionim Feld Namespace den WMI-Namespace für die WMI Query Language (WQL)-Anweisung an, die angibt, welches WMI-Ereignis diese Warnung auslöst.
Geben Sie im Feld Abfrage- die WQL-Anweisung an, die das Ereignis identifiziert, auf das diese Warnung reagiert.
Wählen Sie OKaus.
Verwenden Sie Transact-SQL
Stellen Sie im Objekt-Explorereine Verbindung mit einer Instanz des Datenbankmoduls her.
Wählen Sie auf der Standardleiste Neue Abfrageaus.
Kopieren Sie das folgende Beispiel; fügen Sie es in das Abfragefenster ein und wählen Sie Ausführenaus.
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