適用於:SQL Server
Azure SQL 受控執行個體
這很重要
在 Azure SQL 受控實例上,目前支援大部分但並非所有 SQL Server Agent 功能。 如需詳細資訊,請參閱 SQL 受控實例與 SQL Server 的 T-SQL 差異,或 SQL 受控實例中的 SQL Agent 作業限制。
本文說明如何使用 SQL Server Management Studio 或 Transact-SQL,由 SQL Server 中伺服器事件的 WMI 提供者監視的特定 SQL Server 事件時引發的 SQL Server Agent 警示。
如需使用 WMI 提供者監視 SQL Server 事件的相關信息,請參閱 伺服器事件類別和屬性的 WMI 提供者。 如需接收 WMI 事件警示通知所需許可權的相關信息,請參閱 選取 SQL Server Agent 服務的帳戶。 如需 WQL 的詳細資訊,請參閱 搭配伺服器事件的 WMI 提供者使用 WQL。
限制與規定
SQL Server Management Studio 提供簡單、圖形化的方式來管理整個警示系統,而且是設定警示基礎結構的建議方式。
xp_logevent產生的事件出現在master資料庫中。 因此,除非警示的xp_logevent為@database_name或 NULL,否則'master'不會觸發警示。僅支援執行 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