sys.sp_dropdistpublisher (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Verwijdert een distributie-Publisher. Deze opgeslagen procedure wordt uitgevoerd bij de Distributeur op elke database.

Transact-SQL syntaxis-conventies

Syntax

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

Arguments

[ @publisher = ] N'uitgever'

De Publisher om te droppen. @publisher is sysname, zonder standaardinstelling.

Note

Het gebruik van een aangepaste port voor de SQL Server-uitgever werd geïntroduceerd in SQL Server 2019 (15.x). Als de SQL Server-uitgever is geconfigureerd met een aangepaste port, dan levert bij het plaatsen van zo'n uitgever op de distributeur de naam van de uitgeverserver in plaats van <Hostname>,<PortNumber>.

[ @no_checks = ] no_checks

Specificeert of sp_dropdistpublisher controleert of de Publisher de server als Distributor heeft verwijderd. @no_checks is bit, met als standaard .0

  • Als 0, verifieert replicatie dat de externe Publisher de lokale server als distributeur heeft verwijderd. Als de Publisher lokaal is, verifieert replicatie dat er geen publicatie- of distributieobjecten meer op de lokale server staan.

  • Als 1, worden alle replicatieobjecten die aan de distributie-Publisher zijn gekoppeld verwijderd, zelfs als een externe Publisher niet bereikbaar is. Na dit te hebben gedaan, moet de externe Publisher replicatie verwijderen met sp_dropdistributor met @ignore_distributor = 1.

[ @ignore_distributor = ] ignore_distributor

Specificeert of distributieobjecten bij de Distributeur worden achtergelaten wanneer de Publisher wordt verwijderd. @ignore_distributor is bit, en kan een van deze waarden zijn:

  • 1 = distributieobjecten die behoren tot de @publisher blijven bij de Distributor.
  • 0 = distributieobjecten voor de @publisher worden opgeschoond bij de distributeur.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

sp_dropdistpublisher wordt gebruikt in alle typen replicatie.

Wanneer een Oracle Publisher wordt verwijderd, als het niet lukt om de Publisher te verwijderen, sp_dropdistpublisher krijg je een foutmelding en worden de Distributor-objecten voor de Publisher verwijderd.

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

Permissions

Alleen leden van de vaste serverrol sysadmin kunnen worden uitgevoerd sp_dropdistpublisher.