Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure 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