次の方法で共有


イベント記録ルールの定義

イベント記録ルールは、イベント記録テーブルのデータを保持します。各イベント記録には、名前、アクション、およびアクション タイムアウトがあります。

ルール名

イベント記録ルール名によって、Notification Services アプリケーションのルールが一意に識別されます。ルール名を使用してデータベース オブジェクトに名前を付けます。一貫性を保つために、イベント記録名は、イベント記録テーブルの名前と一致する必要があります。

アクション

アクションには記録テーブルのデータを保持するコードが含まれ、データをアプリケーションで使用可能な状態に保ちます。たとえば、新しいイベント バッチが処理されるたびに、アクションのステートメントでイベント記録テーブルの既存データをすべて削除して、新しいイベント データを挿入できます。

アクションのステートメントは 1 つ以上の Transact-SQL クエリにするか、ストアド プロシージャを実行する Transact-SQL EXECUTE ステートメントにすることができます。

アクションのステートメントは、ジェネレータがイベント バッチを処理するたびに実行されます。これらのステートメントは、ジェネレータが通知を生成するサブスクリプション ルールを実行する前に完了します。したがって、イベント記録は、通知の生成に使用される前に更新されます。

ms172596.note(ja-jp,SQL.90).gifメモ :
通知が生成された後も記録データを保持する場合は、サブスクリプション イベント ルールに Transact-SQL クエリまたはストアド プロシージャ コールを追加します。詳細については、「イベント ルールの定義」を参照してください。

通常、アクションの Transact-SQL ステートメントはイベント クラスからデータを選択し、イベント記録でデータを挿入または更新します。次の例では、アクションの Transact-SQL ステートメントを示しています。このステートメントでは StockEvents イベント クラスから新しいデータを選択し、StockEventChron 記録にデータを挿入します。次に、記録に既に存在する株価を更新します。

-- Insert New Stock Symbols with Prices
INSERT dbo.StockEventsChron (StockSymbol, StockPrice)
SELECT e.StockSymbol, e.StockPrice
    FROM dbo.StockEvents AS e
    WHERE e.StockSymbol
        NOT IN (SELECT StockSymbol FROM dbo.StockEventsChron);
-- Update Existing Stock Symbols with New Prices
UPDATE dbo.StockEventsChron
    SET StockPrice = e.StockPrice
    FROM dbo.StockEvents AS e 
    JOIN dbo.StockEventsChron AS c
        ON e.StockSymbol = c.StockSymbol
        WHERE e.StockPrice > c.StockPrice;
ms172596.note(ja-jp,SQL.90).gifメモ :
XML ファイルでアプリケーションを定義している場合、">" などの XML 予約文字をエンティティ参照で置き換える必要があります。詳細については、「XML の予約文字」を参照してください。

アクションのすべてのステートメントは、同じトランザクションの一部になります。これらのステートメントはすべて完了するか、すべてロールバックされます。

Transact-SQL クエリの作成の詳細については、「クエリの基礎」を参照してください。

アクション タイムアウト

アクション タイムアウトは、アクションのステートメントが完了するまでの許容時間を指定します。ステートメントがタイムアウトになるまでに完了しなかった場合、通知システムはトランザクションをロールバックして、イベント記録ルールを失敗としてマークし、イベント ログにエラーを書き込みます。

ms172596.note(ja-jp,SQL.90).gifメモ :
イベント記録ルールが失敗した場合は、エラーが発生したか、イベント記録を保持するときにタイムアウトが発生したことを意味します。同じジェネレータ クォンタム内で実行される、関連するサブスクリプション イベント ルールも失敗します。定期的なルールは、最新のデータを使用するため失敗しません。

イベント記録ルールを定義するには

イベント記録ルールの例

次のトピックに、イベント記録ルールの例を示します。

参照

関連項目

EventChronicle
EventChronicleRule
EventFieldCollection

概念

コア イベント クラス プロパティの定義
イベント クラスのインデックスの定義
イベント ルールの定義

その他の技術情報

イベント クラスの定義
EventClass 要素 (ADF)
Notification Services アプリケーションの定義
CREATE TABLE (Transact-SQL)
INSERT (Transact-SQL)
SELECT (Transact-SQL)
UPDATE (Transact-SQL)
DELETE (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手