sys.sp_dropdistpublisher (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Släpper en distributions-Publisher. Den här lagrade proceduren körs på distributören på valfri databas.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @publisher = ] N'publisher'

The Publisher att släppa. @publisher är sysname, utan standard.

Note

Att använda en anpassad port för SQL Server-utgivaren introducerades i SQL Server 2019 (15.x). Om SQL Server-publicisten är konfigurerad med en anpassad port, då när en sådan publisher släpps på distributören, ange publisher-serverns namn istället för <Hostname>,<PortNumber>.

[ @no_checks = ] no_checks

Specificerar om sp_dropdistpublisher den kontrollerar att Publisher har avinstallerat servern som distributör. @no_checks är bit, med standardvärdet .0

  • Om 0, verifierar replikering att den fjärranslutna Publisher har avinstallerat den lokala servern som distributör. Om Publisher är lokal verifierar replikering att det inte finns några publicerings- eller distributionsobjekt kvar på den lokala servern.

  • Om 1, tas alla replikeringsobjekt kopplade till distributions-Publisher bort även om en fjärr-Publisher inte kan nås. Efter att ha gjort detta måste den fjärranslutna Publisher avinstallera replikering med sp_dropdistributor med @ignore_distributor = 1.

[ @ignore_distributor = ] ignore_distributor

Specificerar om distributionsobjekt lämnas hos distributören när Publisher tas bort. @ignore_distributor är bit, och kan vara ett av dessa värden:

  • 1 = distributionsobjekt som tillhör @publisher förblir vid distributören.
  • 0 = distributionsobjekt för @publisher rensas upp hos distributören.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

sp_dropdistpublisher används i alla typer av replikering.

När en Oracle Publisher tas bort, om det inte går att ta bort Publisher, sp_dropdistpublisher får det ett fel och Distributor-objekten för Publisher tas bort.

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

Endast medlemmar i den fasta serverrollen sysadmin kan köra sp_dropdistpublisher.