Compartilhar via


Lição 4: Remover os objetos de conversa

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Nesta lição, você aprenderá a remover os objetos que habilitaram um banco de dados para dar suporte a uma conversa usando um procedimento armazenado de ativação interna.

Procedimentos

Observação

Os exemplos de código neste artigo foram testados usando o banco de dados de exemplo AdventureWorks2022, que você pode baixar da página inicial Microsoft SQL Server Samples and Community Projects.

Alternar para o banco de dados AdventureWorks

Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para alternar o contexto para o banco de dados AdventureWorks2022.

USE AdventureWorks2022;
GO

Remover os objetos da conversa

Copie e cole o código a seguir em uma janela do Editor de Consultas. Depois, execute-o para descartar os objetos usados para oferecer suporte à conversa.

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

Próxima etapa

Esta lição conclui o tutorial. Os tutoriais são apenas breves introduções. Eles não descrevem todas as opções disponíveis. Os tutoriais usam lógica simplificada e tratamento de erros e não devem ser usados em um ambiente de produção. Para criar conversas eficazes, confiáveis e robustas, é necessário um código mais complexo do que o exemplo deste tutorial.