Partager via


sp_dropdistpublisher (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Supprime un serveur de publication de distribution. Cette procédure stockée est exécutée sur le serveur de distribution sur n’importe quelle base de données.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publisher = ] N’publisher'

Serveur de publication à supprimer. @publisher est sysname, sans valeur par défaut.

Remarque

L’utilisation d’un port personnalisé pour l’éditeur SQL Server a été introduite dans SQL Server 2019 (15.x). Si l’éditeur SQL Server est configuré avec un port personnalisé, lorsque vous supprimez un tel serveur de publication sur le serveur de distribution, fournissez le nom du serveur de publication au lieu de <Hostname>,<PortNumber>.

[ @no_checks = ] no_checks

Spécifie si sp_dropdistpublisher le serveur de publication a désinstallé le serveur en tant que serveur de distribution. @no_checks est bit, avec la valeur par défaut 0.

  • Si 0, la réplication vérifie que le serveur de publication distant a désinstallé le serveur local en tant que serveur de distribution. Si le serveur de publication est local, la réplication vérifie qu'il ne reste aucun objet de publication ou de distribution sur le serveur local.

  • Si 1, tous les objets de réplication associés au serveur de publication de distribution sont supprimés même si un serveur de publication distant ne peut pas être atteint. Après cela, le serveur de publication distant doit désinstaller la réplication à l’aide de sp_dropdistributor avec @ignore_distributor = 1.

[ @ignore_distributor = ] ignore_distributor

Spécifie si les objets de distribution sont conservés sur le serveur de distribution lorsque le serveur de publication est supprimé. @ignore_distributor est bit et peut être l’une des valeurs suivantes :

  • 1 = objets de distribution appartenant au @publisher restent sur le serveur de distribution.
  • 0 = les objets de distribution pour la @publisher sont nettoyés sur le serveur de distribution.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_dropdistpublisher est utilisé dans tous les types de réplication.

Lors de la suppression d’un serveur de publication Oracle, s’il n’est pas en mesure de supprimer le serveur de publication, sp_dropdistpublisher retourne une erreur et les objets du serveur de distribution pour le serveur de publication sont supprimés.

Exemples

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

autorisations

Seuls les membres du rôle serveur fixe sysadmin peuvent s’exécuter.sp_dropdistpublisher