sp_dropdistpublisher (Transact-SQL)

Quita un publicador de distribución. Este procedimiento almacenado se ejecuta en el distribuidor de cualquier base de datos.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @publisher= ] 'publisher'
    Es el publicador que se va a quitar. publisher es de tipo sysname y no tiene valor predeterminado.

  • [ @no_checks= ] no_checks
    Especifica si sp_dropdistpublisher comprueba que el publicador ha desinstalado el servidor como distribuidor. no_checks es de tipo bit y su valor predeterminado es 0.

    Si el valor es 0, la replicación comprueba que el publicador remoto haya desinstalado el servidor local como distribuidor. Si el publicador de distribución es local, la replicación comprueba que no quedan objetos de publicación o distribución en el servidor local.

    Si es 1, todos los objetos de replicación asociados con el publicador de distribución se quitan aun cuando el publicador remoto no se pueda alcanzar. Una vez hecho esto, el publicador remoto debe desinstalar la replicación mediante sp_dropdistributor, con @ignore_distributor = 1.

  • [ @ignore_distributor= ] ignore_distributor
    Especifica si los objetos de distribución se dejan en el distribuidor cuando se quita el publicador. ignore_distributor es de tipo bit y puede tener uno de estos valores:

    1 = los objetos de distribución pertenecientes al publisher permanecen en el distribuidor.

    0 = los objetos de distribución para el publisher se limpian en el distribuidor.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

sp_dropdistpublisher se usa en todos los tipos de replicación.

Al quitar un publicador de Oracle, si no se puede quitar el publicador sp_dropdistpublisher, se devuelve un error y se quitan los objetos del distribuidor para el publicador.

Ejemplo

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

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

Permisos

Sólo los miembros de la función fija de servidor sysadmin pueden ejecutar sp_dropdistpublisher.