Lektion 4: Avsluta konversationsteman

gäller för:SQL ServerAzure SQL Managed Instance

I den här lektionen lär du dig att släppa de objekt som gjorde det möjligt för en databas att stödja en konversation med hjälp av en intern aktiverings lagrad procedur.

Procedurer

Obs

Kodexemplen i den här artikeln har testats med hjälp av AdventureWorks2025 exempeldatabas som du kan ladda ned från Microsoft SQL Server-exempel och Community Projects startsida.

Växla till AdventureWorks-databasen

Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att växla kontext till AdventureWorks2025 databasen.

USE AdventureWorks2022;
GO

Släpp ner samtalsobjekten

Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att släppa de objekt som användes för konversationen.

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

Nästa steg

Den här lektionen avslutar handledningen. Självstudier är endast korta introduktioner. De beskriver inte alla tillgängliga alternativ. Exempelkod använder förenklad logik och felhantering, och du bör inte använda den i en produktionsmiljö. För att skapa effektiva, tillförlitliga och robusta konversationer behöver du mer komplex kod än exemplet i den här självstudien.