次の方法で共有


NSEventSubmitBatch<EventClassName> (Transact-SQL)

新しいイベント バッチを作成し、クエリを実行して一連のイベントを取得し、取得したイベントを送信します。最後に、イベント バッチを終了します。必要に応じて、イベント バッチを終了する前に、後処理用のクエリを実行できます。イベント ソースとしてクエリを使用するため、NSEventWriteEventClassName ストアド プロシージャの場合とは異なり、一度に複数のイベントを送信できます。

構文

[ schema_name . ] SEventSubmitBatchEventClassName
    [ @ProviderName = ] 'event_provider_name',
    [ @EventsQuery = ] 'selection_query',
    [ @PostQuery = ] 'post_processing_query' 

引数

[ @ProviderName =] 'provider_name'

イベントを送信するイベント プロバイダの名前を指定します。provider_name のデータ型は nvarchar(255) で、アプリケーション定義ファイル (ADF) に指定されているイベント プロバイダの名前と一致する必要があります。

[ @EventsQuery =] 'selection_query'

Transact-SQL クエリを表す文字列を指定します。このクエリを使用して、イベントとして送信するレコードが選択されます。このクエリが生成するレコードのスキーマは、送信先となるイベント テーブルのスキーマと一致している必要があります。selection_query のデータ型は nvarchar(4000) です。

[ @PostQuery =] 'post_processing_query'

Transact-SQL クエリを表す文字列を指定します。このクエリには、記録テーブルの更新や一時オブジェクトの削除など、後処理や状態管理の処理を記述できます。post_processing_query のデータ型は nvarchar(4000) です。

結果セット

列名 データ型 説明

EventCount

bigint

イベント バッチで送信されたイベントの数。この値は、イベント テーブルへの問い合わせによって算出されます。

解説

Microsoft SQL Server Notification Services でインスタンスを作成すると、アプリケーション データベース内に NSEventSubmitBatchEventClassName ストアド プロシージャが生成されます。アプリケーションを更新すると、Notification Services ではストアド プロシージャが再コンパイルされます。

このストアド プロシージャは、アプリケーション定義ファイル (ADF) の要素 SchemaName で指定される、アプリケーション スキーマ内に格納されます。スキーマ名が指定されない場合、既定のスキーマ dbo が使用されます。

Transact-SQL を使用して個々のイベントをアプリケーションに送信するには、NSEventBeginBatchEventClassName を使用してバッチを開始し、NSEventWriteEventClassName を使用して個々のイベントを書き込み、NSEventFlushBatchEventClassName を使用してイベント バッチを終了します。

権限

既定では、NSEventProvider データベース ロール、NSRunService データベース ロール、db_owner 固定データベース ロール、および sysadmin 固定サーバー ロールのメンバに実行権限が与えられています。

戻り値

0 (成功) または 1 (失敗)

次の例では、NSEventSubmitBatchStockEvents ストアド プロシージャを使用して、Market データベースの Stocks テーブルから銘柄と株価を取得し、そのデータを NSStockEventsEvents テーブルに書き込んでいます。ここでは、後処理用のクエリに何も指定していません。

アプリケーションでは、既定の SchemaName 設定が使用されます。この設定ではすべてのアプリケーション オブジェクトが dbo スキーマに格納されます。

EXEC dbo.NSEventSubmitBatchStockEvents
    @ProviderName = N'StockEP', 
    @EventsQuery = 'SELECT StockSymbol, StockPrice 
                    FROM Market.dbo.Stocks', 
    @PostQuery = '';

参照

関連項目

Notification Services ストアド プロシージャ (Transact-SQL)

その他の技術情報

Notification Services パフォーマンス レポート
SchemaName 要素 (ADF)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手