sp_dropdistpublisher (Transact-SQL)

Descarta um Publicador de distribuição. Esse procedimento armazenado é executado no Distribuidor, em qualquer banco de dados.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_dropdistpublisher [ @publisher = ] 'publisher'
    [ , [ @no_checks = ] no_checks ]
    [ , [ @ignore_distributor = ] ignore_distributor ]

Argumentos

  • [ @publisher= ] 'publisher'
    É o Publicador a ser descartado. publisher é sysname, sem padrão.

  • [ @no_checks= ] no_checks
    Especifica se sp_dropdistpublisher deve verificar se o Publicador desinstalou o servidor como Distribuidor. no_checks é bit, com um padrão de 0.

    Se for 0, a replicação verificará se o Publicador remoto desinstalou o servidor local como o Distribuidor. Se o Publicador for local, a replicação verificará se não há objetos de publicação ou distribuição restantes no servidor local.

    Se for 1, todos os objetos de replicação associados ao Publicador de distribuição serão descartados, mesmo que um Publicador remoto não possa ser alcançado. Depois de fazer isso, o Publicador remoto deve desinstalar a replicação usando sp_dropdistributor com @ ignore_distributor = 1.

  • [ @ignore_distributor= ] ignore_distributor
    Especifica se os objetos de distribuição serão deixados no Distribuidor quando o Publicador for removido. ignore_distributor é bit e pode ser um destes valores:

    1 = objetos de distribuição que pertencem a publisher permanecem no Distribuidor.

    0 = objetos de distribuição para publisher são limpos no Distribuidor.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

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

Ao descartar um Publicador Oracle, se não for possível descartar o Editor, sp_dropdistpublisher retornará um erro e os objetos do Distribuidor para o Editor serão removidos.

Exemplo

-- 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'AdventureWorks2008R2';

-- Disable the publication database.
USE [AdventureWorks2008R2]
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_dropdistpublisher.