sp_dropdistpublisher (Transact-SQL)

Löscht einen Verteilungsverleger. Diese gespeicherte Prozedur wird auf dem Verteiler für jede Datenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @publisher= ] 'publisher'
    Der zu löschende Verleger. publisher ist vom Datentyp sysname und hat keinen Standard.

  • [ @no_checks= ] no_checks
    Gibt an, ob sp_dropdistpublisher überprüft, ob der Verleger den Server als Verteiler deinstalliert hat. no_checks ist vom Datentyp bit; der Standard ist 0.

    Wenn der Wert 0 ist, überprüft die Replikation, ob der Remoteverleger den lokalen Server als Verteiler deinstalliert hat. Wenn es sich beim Verleger um einen lokalen Verleger handelt, überprüft die Replikation, ob sich auf dem lokalen Server keine Veröffentlichungs- oder Verteilungsobjekte mehr befinden.

    Wenn der Wert 1 ist, werden alle dem Verteilungsverleger zugeordneten Replikationsobjekte gelöscht, selbst wenn ein Remoteverleger nicht erreicht werden kann. Nach diesem Vorgang muss der Remoteverleger die Replikation mithilfe von sp_dropdistributor mit @ignore_distributor = 1 deinstallieren.

  • [ @ignore_distributor= ] ignore_distributor
    Gibt an, ob Verteilungsobjekte auf dem Verteiler verbleiben, wenn der Verleger entfernt wird. ignore_distributor ist vom Datentyp bit. Die folgenden Werte sind möglich:

    1 = Verteilungsobjekte, die zu dem mit publisher angegebenen Verleger gehören, verbleiben auf dem Verteiler.

    0 = für Verteilungsobjekte des mit publisher angegebenen Verlegers wird auf dem Verteiler ein Cleanup ausgeführt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_dropdistpublisher wird für alle Replikationstypen verwendet.

Wenn beim Löschen eines Oracle-Verlegers der Verleger nicht gelöscht werden kann, gibt sp_dropdistpublisher einen Fehler zurück und die Verteilungsobjekte für den Verleger werden entfernt.

Beispiel

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können sp_dropdistpublisher ausführen.