Erstellen einer WMI-Ereigniswarnung
Gilt für: SQL Server Azure 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 dermaster
-Datenbank auf. Daher löstxp_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_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-Ereigniswarnung erstellen möchten.
Klicken Sie auf 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 einen Namen für diese Warnung ein.
Aktivieren Sie das Kontrollkästchen Aktivieren , um die Ausführung der Warnung zu ermöglichen. Standardmäßig ist Aktivieren aktiviert.
Klicken Sie in der Liste Typ auf WMI-Ereigniswarnung.
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.
Geben Sie im Feld Abfrage die WQL-Anweisung an, die das Ereignis identifiziert, auf das diese Warnung reagiert.
Klicken Sie auf OK.
Verwenden von Transact-SQL
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
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