實作事件通知

更新: 2005 年 12 月 5 日

若要實作事件通知,您必須先建立目標服務來接收事件通知,然後建立事件通知。

ms178080.note(zh-tw,SQL.90).gif重要事項:
您應該針對傳送訊息到遠端伺服器上 Service Broker 的事件通知,設定 Service Broker 對話安全性。對話安全性必須根據完整安全性模型,以手動方式加以設定。如需詳細資訊,請參閱<事件通知的對話方塊安全性>。

建立目標服務

您不必建立 Service Broker 起始服務,因為 Service Broker 包括下列特定訊息類型和事件通知的合約:

https://schemas.microsoft.com/SQL/Notifications/PostEventNotification

接收事件通知的目標服務必須遵照這項預先存在的合約。

若要建立目標服務

  1. 建立要接收訊息的佇列。
    ms178080.note(zh-tw,SQL.90).gif附註:
    佇列會接收下列訊息類型:https://schemas.microsoft.com/SQL/Notifications/QueryNotification
  2. 在參考事件通知合約的佇列上建立服務。
  3. 在服務上建立路由,以定義要 Service Broker 將該服務的訊息傳送到哪一個位址。如果事件通知是以相同資料庫中的服務為目標,請指定 ADDRESS = 'LOCAL'
    ms178080.note(zh-tw,SQL.90).gif附註:
    Service Broker 路由會判斷要接收通知訊息的服務。如果事件通知是以遠端伺服器的服務為目標,則來源伺服器和目標伺服器上都必須要定義路由,以確保可以進行雙向通訊。如需詳細資訊,請參閱<Service Broker 路由>。

下列範例會建立佇列、佇列上的服務及服務上的路由,以處理來自事件通知合約的訊息:

CREATE QUEUE NotifyQueue ;
GO
CREATE SERVICE NotifyService
ON QUEUE NotifyQueue
(
[https://schemas.microsoft.com/SQL/Notifications/PostEventNotification]
);
GO
CREATE ROUTE NotifyRoute
WITH SERVICE_NAME = 'NotifyService',
ADDRESS = 'LOCAL';
GO

如需有關如何建立 Service Broker 目標服務的詳細資訊,請參閱<Introduction to Service Broker Programming>。

建立事件通知

事件通知是使用 Transact-SQL CREATE EVENT NOTIFICATION 陳述式建立,並使用 DROP EVENT NOTIFICATION STATEMENT 卸除。若要修改事件通知,您必須先卸除再重新建立事件通知。

下列範例會建立事件通知 CreateDatabaseNotification。當伺服器上發生任何 CREATE_DATABASE 事件時,這個通知會傳送此訊息給先前建立的 NotifyService 服務。

CREATE EVENT NOTIFICATION CreateDatabaseNotification
ON SERVER
FOR CREATE_DATABASE
TO SERVICE 'NotifyService', '8140a771-3c4b-4479-8ac0-81008ab17984' ;
ms178080.Caution(zh-tw,SQL.90).gif注意:
事件通知以不同事件來辨識 CREATE_SCHEMA 事件和 CREATE SCHEMA 陳述式的 <schema_element> 定義。例如,對 CREATE_SCHEMA 和 CREATE_TABLE 事件建立事件通知,且您執行下列批次。 CREATE SCHEMA s CREATE TABLE t1 (col1 int) 在此案例中,事件通知引發了兩次:一次是在 CREATE_SCHEMA 事件發生時,一次只在 CREATE_TABLE 事件發生時。我們建議您避免在 CREATE_SCHEMA 事件和任何對應 CREATE SCHEMA 定義的 <schema_element> 文字上建立事件通知,或在應用程式中建立邏輯,以避免擷取不想要的事件資料。

若要建立事件通知

若要卸除事件通知

請參閱

概念

瞭解事件通知
設計事件通知
取得事件通知相關資訊

其他資源

EVENTDATA (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2005 年 12 月 5 日

新增內容:
  • 新增注意事項,指出在 CREATE_SCHEMA 事件和 CREATE SCHEMA 陳述式的 <schema_element> 定義上建立的事件通知可能意外地引發兩次。
變更的內容:
  • 將有關事件通知之對話方塊安全性的章節變更為重要事項附註,引導使用者到另一個主題。