Partilhar via


Lição 4: Soltar os objetos de conversação

Aplica-se a:SQL ServerAzure SQL Managed Instance

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

Procedimentos

Observação

Os exemplos de código neste artigo foram testados usando o banco de dados de exemplo AdventureWorks2022, que pode descarregar 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

Deixar cair os elementos da conversa

Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para remover os objetos que foram usados para suportar a 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óximo passo

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 eficientes, confiáveis e robustas, você precisa de um código mais complexo do que o exemplo neste tutorial.

Implementar ativação interna