Compartilhar via


sp_dropdistributiondb (Transact-SQL)

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

Descarta um banco de dados de distribuição. Descarta os arquivos físicos usados pelo banco de dados se eles não forem usados por outro banco de dados. Esse procedimento armazenado é executado no Distribuidor em qualquer banco de dados.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_dropdistributiondb
    [ @database = ] N'database'
    [ , [ @former_ag_secondary = ] former_ag_secondary ]
[ ; ]

Argumentos

@database [ = ] N'banco de dados'

O banco de dados a ser descartado. @database é sysname, sem padrão.

@former_ag_secondary [ = ] former_ag_secondary

Especifica se esse nó fazia parte de um grupo de disponibilidade para o banco de dados de distribuição. @former_ag_secondary é int, com um padrão de 0.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_dropdistributiondb é usado em todos os tipos de replicação.

Esse procedimento armazenado deve ser executado antes de descartar o Distribuidor executando sp_dropdistributoro .

sp_dropdistributiondb também remove um trabalho do Queue Reader Agent para o banco de dados de distribuição, se houver.

Para desabilitar distribuição, o banco de dados de distribuição deve estar online. Se um instantâneo do banco de dados existir para o banco de dados de distribuição, deverá ser descartado antes de desabilitar distribuição. Um instantâneo de banco de dados é uma cópia offline somente leitura de um banco de dados e não está relacionado a um instantâneo de replicação. Para obter mais informações, consulte Instantâneos de banco de dados (SQL Server).

Exemplos

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Disable publishing and distribution.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB as sysname;
SET @distributionDB = N'distribution';
SET @publisher = $(DistPubServer);
SET @publicationDB = N'AdventureWorks2022';

-- Disable the publication database.
USE [AdventureWorks2022]
EXEC sp_removedbreplication @publicationDB;

-- Remove the registration of the local Publisher at the Distributor.
USE master
EXEC sp_dropdistpublisher @publisher;

-- Delete the distribution database.
EXEC sp_dropdistributiondb @distributionDB;

-- Remove the local server as a Distributor.
EXEC sp_dropdistributor;
GO

Permissões

Somente membros da função de servidor fixa sysadmin podem executar sp_dropdistributiondb.