レッスン 4 : メッセージ交換オブジェクトの削除

このレッスンでは、内部アクティブ化ストアド プロシージャを使用して、データベースにおけるメッセージ交換のサポートを可能にしたオブジェクトを削除する方法を学習します。

手順

AdventureWorks データベースへの切り替え

  • 次のコードをコピーし、クエリ エディタ ウィンドウに貼り付けます。次にこのコードを実行し、コンテキストを AdventureWorks データベースに切り替えます。

    USE AdventureWorks;
    GO
    

メッセージ交換オブジェクトの削除

  • 次のコードをコピーし、クエリ エディタ ウィンドウに貼り付けます。次にこのコードを実行し、メッセージ交換のサポートに使用したオブジェクトを削除します。

    IF EXISTS (SELECT * FROM sys.objects
               WHERE name =
               N'TargetActivProc')
         DROP PROCEDURE TargetActivProc;
    
    IF EXISTS (SELECT * FROM sys.services
               WHERE name =
               N'//AWDB/InternalAct/TargetService')
         DROP SERVICE
         [//AWDB/InternalAct/TargetService];
    
    IF EXISTS (SELECT * FROM sys.service_queues
               WHERE name = N'TargetQueueIntAct')
         DROP QUEUE TargetQueueIntAct;
    
    -- Drop the intitator queue and service if they already exist.
    IF EXISTS (SELECT * FROM sys.services
               WHERE name =
               N'//AWDB/InternalAct/InitiatorService')
         DROP SERVICE
         [//AWDB/InternalAct/InitiatorService];
    
    IF EXISTS (SELECT * FROM sys.service_queues
               WHERE name = N'InitiatorQueueIntAct')
         DROP QUEUE InitiatorQueueIntAct;
    
    -- Drop contract and message type if they already exist.
    IF EXISTS (SELECT * FROM sys.service_contracts
               WHERE name =
               N'//AWDB/InternalAct/SampleContract')
         DROP CONTRACT
         [//AWDB/InternalAct/SampleContract];
    
    IF EXISTS (SELECT * FROM sys.service_message_types
               WHERE name =
               N'//AWDB/InternalAct/RequestMessage')
         DROP MESSAGE TYPE
         [//AWDB/InternalAct/RequestMessage];
    
    IF EXISTS (SELECT * FROM sys.service_message_types
               WHERE name =
               N'//AWDB/InternalAct/ReplyMessage')
         DROP MESSAGE TYPE
         [//AWDB/InternalAct/ReplyMessage];
    

次の手順

これでチュートリアルは終わりです。 チュートリアルは、概要の紹介を目的としています。 使用可能なすべてのオプションについて説明しているわけではありません。 チュートリアルでは、ロジックやエラー処理を単純化しているため、実稼働環境では使用しないでください。効率的で信頼度の高い、堅牢なメッセージ交換を行うには、このチュートリアルに例示されているコードよりも複雑なコードが必要になります。

Service Broker チュートリアルに戻る

Service Broker チュートリアル