sp_dropdistpublisher (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Löscht einen Verteilungsverleger. Diese gespeicherte Prozedur wird beim Distributor auf einer beliebigen Datenbank ausgeführt.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @publisher = ] N'publisher'

Der Publisher, der abzulegen ist. @publisher ist "sysname" ohne Standard.

Hinweis

Die Verwendung eines benutzerdefinierten Ports für den SQL Server-Herausgeber wurde in SQL Server 2019 (15.x) eingeführt. Wenn der SQL Server-Herausgeber mit einem benutzerdefinierten Port konfiguriert ist, geben Sie beim Ablegen eines solchen Herausgebers auf dem Verteiler den Herausgeberservernamen anstelle von <Hostname>,<PortNumber>.

[ @no_checks = ] no_checks

Gibt an, ob überprüft wird, ob sp_dropdistpublisher der Publisher den Server als Distributor deinstalliert hat. @no_checks ist bit, mit einem Standardwert von 0.

  • Wenn 0, überprüft die Replikation, ob der remote Publisher den lokalen Server als Distributor 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 1, alle Replikationsobjekte, die der Verteilung Publisher zugeordnet sind, gelöscht werden, auch wenn ein Remote-Publisher nicht erreicht werden kann. Danach muss die Remotereplikation von Publisher mit sp_dropdistributor@ignore_distributor = 1deinstalliert werden.

[ @ignore_distributor = ] ignore_distributor

Gibt an, ob Verteilungsobjekte auf dem Verteiler bleiben, wenn der Verleger entfernt wird. @ignore_distributor ist Bit und kann eine der folgenden Werte sein:

  • 1= Verteilungsobjekte, die zur @publisher re Standard am Distributor gehören.
  • 0= Verteilungsobjekte für die @publisher werden beim Distributor sauber.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler).

Hinweise

sp_dropdistpublisher wird in allen Replikationstypen verwendet.

Wenn ein Oracle Publisher gelöscht wird, wenn der Publisher nicht abgelegt werden kann, wird ein Fehler zurückgegeben, sp_dropdistpublisher und die Distributor-Objekte für publisher werden entfernt.

Beispiele

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können ausgeführt werden sp_dropdistpublisher.