共用方式為


收集與篩選 SQL Server 事件提供者的資料

當您定義 Microsoft SQL Server 事件提供者時,必須定義收集事件資料的查詢。您可以選擇性地定義查詢,對您收集資料的資料表執行後續處理。

收集資料

您定義要收集資料的 Transact-SQL 查詢可以是任何 Transact-SQL 查詢,其傳回的資料與目的地事件類別中的欄位完全相符。例如,如果您定義含有 StockSymbolStockPrice 兩個欄位的事件類別,則收集事件的查詢的唯一需求,就是它只傳回含有資料的兩個資料行,它們必須符合 StockSymbolStockPrice 欄位的名稱和資料類型。這項查詢的範例如下:

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable;

您可以執行事件收集查詢的預存程序。

篩選資料

如果 SELECT 陳述式可能傳回大量資料,但有些資料不是有效的事件資料,則您可以篩選查詢。例如,您可以撰寫查詢來傳回只包含那些庫存的庫存資料,而訂閱者已建立其訂閱:

SELECT StockSymbol, StockPrice
FROM StockDB.dbo.StockTable
WHERE StockSymbol IN 
(SELECT DISTINCT StockSymbol FROM dbo.StockSubscriptions);

這項查詢只傳回可能產生通知的庫存資料。

後續處理

SQL Server 事件提供者支援後續處理查詢,讓您可以在產生事件之後清除或改變資料。例如,您有一個資料行,在產生事件之前,它的值是 0,但您想要在產生事件之後,有 1 的值。若要更新這份資料表,您可以撰寫如下的查詢:

UPDATE StockDB.dbo.StockTable
SET EventUsage = 1
WHERE EventUsage = 0;

後續處理查詢是在與事件收集查詢相同的交易中執行。

您可以執行後續處理查詢的預存程序。

請參閱

概念

定義 SQL Server 事件提供者

其他資源

定義事件提供者
標準事件提供者
SELECT (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助