2

SQLServiceBrokerを使用しています。別のプロセスがアイテムを追加しているキューがあります。アイテムがキューに追加されるたびにストアドプロシージャを実行したい。プロシージャはキューから最上位のアイテムを受け取り、ストアドプロシージャ内でその情報を使用します。このようなことをするための正しい構文は何ですか?通常のSQLトリガーを使用しますか、それともService Brokerキューを操作するときに使用する特別なものがありますか?

4

1 に答える 1

3

トリガーされたストアード・プロシージャーは、キュー定義の一部として指定できます。CREATE QUEUE-具体的にはACTIVATION条項のドキュメントを参照してください。

ドキュメントからの例:

次の例では、メッセージの受信に使用できるキューを作成します。メッセージがキューに入ると、キューはストアドプロシージャexpense_procedureを開始します。ストアドプロシージャは、ユーザーExpenseUserとして実行されます。キューは、ストアード・プロシージャーの最大5つのインスタンスを開始します。

CREATE QUEUE ExpenseQueue
    WITH STATUS=ON,
    ACTIVATION (
        PROCEDURE_NAME = expense_procedure,
        MAX_QUEUE_READERS = 5,
        EXECUTE AS 'ExpenseUser' ) ;
于 2012-04-16T20:24:44.920 に答える