Condividi tramite


sp_dropdistpublisher (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

Elimina un server di pubblicazione di distribuzione. Questa stored procedure viene eseguita in qualsiasi database del server di distribuzione.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @publisher = ] N'publisher'

Server di pubblicazione da eliminare. @publisher è sysname, senza impostazione predefinita.

Nota

L'uso di una porta personalizzata per il server di pubblicazione di SQL Server è stato introdotto in SQL Server 2019 (15.x). Se il server di pubblicazione di SQL Server è configurato con una porta personalizzata, quando si elimina tale server di pubblicazione nel server di distribuzione, specificare il nome del server di <Hostname>,<PortNumber>pubblicazione anziché .

[ @no_checks = ] no_checks

Specifica se verifica che sp_dropdistpublisher il server di pubblicazione abbia disinstallato il server come server di distribuzione. @no_checks è bit, con un valore predefinito .0

  • Se 0, la replica verifica che il server di pubblicazione remoto abbia disinstallato il server locale come server di distribuzione. Se il server di pubblicazione è locale, durante la replica viene verificato che nel server locale non siano più presenti oggetti di pubblicazione o di distribuzione.

  • Se 1, tutti gli oggetti di replica associati al server di pubblicazione di distribuzione vengono eliminati anche se non è possibile raggiungere un server di pubblicazione remoto. Dopo questa operazione, il server di pubblicazione remoto deve disinstallare la replica usando sp_dropdistributor con @ignore_distributor = 1.

[ @ignore_distributor = ] ignore_distributor

Specifica se gli oggetti di distribuzione vengono mantenuti nel server di distribuzione quando il server di pubblicazione viene rimosso. @ignore_distributor è bit e può essere uno di questi valori:

  • 1 = gli oggetti di distribuzione appartenenti al @publisher rimangono nel server di distribuzione.
  • 0 = gli oggetti di distribuzione per il @publisher vengono puliti nel server di distribuzione.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_dropdistpublisher viene usato in tutti i tipi di replica.

Quando si elimina un server di pubblicazione Oracle, se non è possibile eliminare il server di pubblicazione, sp_dropdistpublisher viene restituito un errore e gli oggetti server di distribuzione per il server di pubblicazione vengono rimossi.

Esempi

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

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin possono eseguire sp_dropdistpublisher.