Compartilhar via


Lição 4: Descartando os objetos de conversa

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

Procedimentos

Alternar para o banco de dados AdventureWorks2008R2

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

    USE AdventureWorks2008R2;
    GO
    

Descartar os objetos de 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'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];
    

Próximas etapas

Isso conclui o tutorial. Os tutoriais são apenas breves apresentaçõ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 avançadas, é necessário um código mais complexo que o exemplo deste tutorial.

Retornar para os tutoriais do Service Broker

Tutoriais do Service Broker