共用方式為


第 4 課:卸除交談物件

在這一課,您將學會使用內部啟用預存程序來卸除讓某個資料庫支援交談的物件。

程序

切換至 AdventureWorks2008R2 資料庫

  • 將下列程式碼複製並貼入 [查詢編輯器] 視窗中。然後,執行此程式碼以便將內容切換至 AdventureWorks2008R2 資料庫。

    USE AdventureWorks2008R2;
    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 教學課程