Leçon 4 : Supprimer les objets de conversation

S’applique à :SQL ServerAzure SQL Managed Instance

Dans cette leçon, vous allez apprendre à supprimer les objets qui ont activé une base de données pour prendre en charge une conversation à l’aide d’une procédure stockée d’activation interne.

Procédures

Remarque

Les exemples de code de cet article ont été testés à l’aide de l’exemple de base de données AdventureWorks2025, que vous pouvez télécharger à partir de la Microsoft SQL Server Samples and Community Projects page d’accueil.

Basculer vers la base de données AdventureWorks

Copiez et collez le code suivant dans une fenêtre éditeur de requête, puis exécutez-la pour basculer le contexte vers la AdventureWorks2025 base de données.

USE AdventureWorks2022;
GO

Supprimer les objets de la conversation

Copiez et collez le code suivant dans une fenêtre de l’Éditeur de requête, puis exécutez-la pour supprimer les objets utilisés pour prendre en charge la conversation.

IF EXISTS (SELECT *
           FROM sys.objects
           WHERE name = N'TargetActiveProc')
    DROP PROCEDURE TargetActiveProc;

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

Étape suivante

Cette leçon conclut le tutoriel. Les didacticiels sont de brèves introductions uniquement ; ils ne décrivent pas toutes les options disponibles. Les didacticiels utilisent une logique simplifiée et une gestion des erreurs, et vous ne devez pas les utiliser dans un environnement de production. Pour créer des conversations efficaces, fiables et solides, vous avez besoin d'un code plus complexe que celui qui figure dans l'exemple de ce didacticiel.