Skapa en WMI-händelseavisering
gäller för:SQL Server
Azure SQL Managed Instance
Viktig
På 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 imaster
-databasen. Därför utlöserxp_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
I Object Explorer väljer plustecknet för att expandera servern där du vill skapa en WMI-händelseavisering.
Välj plustecknet för att expandera SQL Server Agent.
Klicka med höger musknapp på Aviseringar och välj Ny avisering.
I dialogrutan Ny avisering i rutan Namn anger du ett namn för den här aviseringen.
Markera kryssrutan Aktivera så att aviseringen kan köras. Som standard är Aktivera markerat.
I listan Typ väljer du WMI-händelseavisering.
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.
I rutan Query anger du WQL-instruktionen som identifierar händelsen som den här aviseringen svarar på.
Välj OK.
Använd Transact-SQL
I Object Exploreransluter du till en instans av databasmotorn.
I standardfältet väljer du Ny fråga.
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