sys.sp_dropdistpublisher (Transact-SQL)

Aplica-se a: SQL ServerAzure SQL Managed Instance

Lança um Publisher de distribuição. Este procedimento armazenado é executado no Distribuidor em qualquer base de dados.

Transact-SQL convenções de sintaxe

Syntax

sys.sp_dropdistpublisher
    [ @publisher = ] N'publisher'
    [ , [ @no_checks = ] no_checks ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
[ ; ]

Arguments

@publisher [ = ] N'editor'

O Publisher para largar. @publisher é sysname, sem padrão.

Note

A utilização de uma porta personalizada para o editor SQL Server foi introduzida no SQL Server 2019 (15.x). Se o publisher do SQL Server estiver configurado com uma porta personalizada, então, ao colocar tal publisher no distribuidor, forneça o nome do servidor publisher em vez de <Hostname>,<PortNumber>.

[ @no_checks = ] no_checks

Especifica se sp_dropdistpublisher verifica que o Publisher desinstalou o servidor como Distribuidor. @no_checks é bit, com um padrão de 0.

  • Se 0, a replicação verifica que o Publisher remoto desinstalou o servidor local como Distribuidor. Se o Publisher for local, a replicação verifica que não existem objetos de publicação ou distribuição restantes no servidor local.

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

[ @ignore_distributor = ] ignore_distributor

Especifica se os objetos de distribuição ficam no Distribuidor quando o Publisher é removido. @ignore_distributor é bit, e pode ser um destes valores:

  • 1 = objetos de distribuição pertencentes à @publisher permanecem no Distribuidor.
  • 0 = os objetos de distribuição para a @publisher são limpos no Distribuidor.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Remarks

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

Ao eliminar um Oracle Publisher, se não conseguir eliminar o Publisher, sp_dropdistpublisher devolve um erro e os objetos Distributor do Publisher são removidos.

Examples

-- 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_dropdistpublishero .