建立 WMI 事件警示
適用於:SQL Server Azure SQL 受控執行個體
重要
Azure SQL 受控執行個體目前支援多數 (但非全部) 的 SQL Server Agent 功能。 如需詳細資料,請參閱 Azure SQL 受控執行個體與 SQL Server 之間的 T-SQL 差異。
本文描述如何在 SQL Server 中使用 SQL Server Management Studio 或 Transact-SQL 建立 SQL Server Agent 警示,以便在伺服器事件的 WMI 提供者所監視的特定 SQL Server 事件發生時引發警示。
如需使用 WMI 提供者監視 SQL Server 事件的詳細資訊,請參閱伺服器事件類別和屬性的 WMI 提供者。 如需接收 WMI 事件警示通知所需權限的詳細資訊,請參閱 選取 SQL Server Agent 服務的帳戶。 如需 WQL 的詳細資訊,請參閱 搭配伺服器事件的 WMI 提供者使用 WQL。
限制事項
SQL Server Management Studio 提供了一種簡單的圖形方式供您管理整個警示系統,建議您利用這個方式設定警示基礎結構。
xp_logevent
產生的事件出現在master
資料庫中。 因此,除非警示的@database_name
是'master'
或 NULL,否則,xp_logevent
不會觸發警示。僅支援 SQL Server Agent 執行所在電腦上的 WMI 命名空間。
權限
依預設,只有 系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行 sp_add_alert
。
使用 SQL Server Management Studio
在 [物件總管] 中,選取加號以展開您要建立 WMI 事件警示的伺服器。
選取加號展開 [SQL Server Agent]。
以滑鼠右鍵按一下 [警示] ,然後選取 [新增警示]。
在 [新增警示] 對話方塊中的 [名稱] 方塊,輸入此警示的名稱。
選取 [啟用] 核取方塊以讓警示得以執行。 根據預設,會選取 [啟用] 。
在 [類型] 清單中,選取 [WMI 事件警示]。
在 [WMI 事件警示定義] 底下的 [命名空間] 方塊中,指定 WMI 查詢語言 (WQL) 陳述式的 WMI 命名空間,以識別哪個 WMI 事件將會觸發此警示。
在 [查詢] 方塊中,指定會識別警示所回應之事件的 WQL 陳述式。
選取 [確定]。
使用 Transact-SQL
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,選取 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。
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