Lektion 4: Löschen der Zielkonversationsobjekte

In dieser Lektion erfahren Sie, wie Sie die Objekte löschen, die es einer Datenbank ermöglicht haben, eine Konversation mithilfe einer gespeicherten Prozedur für die interne Aktivierung zu unterstützen.

Verfahrensweisen

Wechseln zur AdventureWorks-Datenbank

  • Kopieren Sie den folgenden Code, und fügen Sie ihn in einem Abfrage-Editorfenster ein. Führen Sie den Code anschließend aus, um den Kontext zur AdventureWorks-Datenbank zu wechseln.

    USE AdventureWorks;
    GO
    

Löschen der Konversationsobjekte

  • Kopieren Sie den folgenden Code, und fügen Sie ihn in einem Abfrage-Editorfenster ein. Führen Sie den Code anschließend aus, um die Objekte zu löschen, die zum Unterstützen der Konversation verwendet wurden.

    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];
    

Nächste Schritte

Damit ist das Lernprogramm beendet. Lernprogramme sind nur kurze Einführungen. Sie beschreiben nicht alle verfügbaren Optionen. Lernprogramme verwenden eine vereinfachte Logik und Fehlerbehandlung und sollten nicht in einer Produktionsumgebung verwendet werden.Um effiziente, zuverlässige und stabile Konversationen zu erstellen, benötigen Sie komplexeren Code als in dem Beispiel in diesem Lernprogramm.

Zu den Service Broker-Lernprogrammen zurückkehren

Service Broker-Lernprogramme