Condividi tramite


sp_dropdistributiondb (Transact-SQL)

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

Elimina un database di distribuzione. Elimina i file fisici usati dal database se non vengono usati da un altro database. Questa stored procedure viene eseguita in qualsiasi database del server di distribuzione.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_dropdistributiondb
    [ @database = ] N'database'
    [ , [ @former_ag_secondary = ] former_ag_secondary ]
[ ; ]

Argomenti

[ @database = ] N'database'

Database da eliminare. @database è sysname, senza impostazione predefinita.

[ @former_ag_secondary = ] former_ag_secondary

Specifica se questo nodo faceva parte in precedenza di un gruppo di disponibilità per il database di distribuzione. @former_ag_secondary è int, con un valore predefinito .0

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_dropdistributiondb viene usato in tutti i tipi di replica.

Questa stored procedure deve essere eseguita prima di eliminare il server di distribuzione eseguendo sp_dropdistributor.

sp_dropdistributiondb rimuove anche un processo dell'agente di lettura coda per il database di distribuzione, se presente.

Per disabilitare la distribuzione, è necessario che il database di distribuzione sia online. Se esiste uno snapshot per il database di distribuzione, deve essere eliminato prima della disabilitazione della distribuzione. Uno snapshot del database è una copia offline di sola lettura di un database e non è correlata a uno snapshot di replica. Per altre informazioni, vedere Snapshot del database (SQL Server).

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