sp_dropdistributiondb (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

Quita una base de datos de distribución. Quita los archivos físicos utilizados por la base de datos si no los usa otra base de datos. Este procedimiento almacenado se ejecuta en el distribuidor en cualquier base de datos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @database = ] N'database'

Base de datos que se va a quitar. @database es sysname, sin ningún valor predeterminado.

[ @former_ag_secondary = ] former_ag_secondary

Especifica si este nodo formaba parte anteriormente de un grupo de disponibilidad para la base de datos de distribución. @former_ag_secondary es int, con un valor predeterminado de 0.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_dropdistributiondb se usa en todos los tipos de replicación.

Este procedimiento almacenado debe ejecutarse antes de quitar el distribuidor ejecutando sp_dropdistributor.

sp_dropdistributiondb también quita un trabajo del Agente de lectura de cola para la base de datos de distribución, si existe uno.

Para deshabilitar la distribución, la base de datos de distribución debe estar en línea. Si hay una instantánea de base de datos para la base de datos de distribución, debe quitarse antes de deshabilitar la distribución. Una instantánea de base de datos es una copia sin conexión de solo lectura de una base de datos y no está relacionada con una instantánea de replicación. Para obtener más información, vea Instantáneas de base de datos (SQL Server).

Ejemplos

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

Permisos

Solo los miembros del rol fijo de servidor sysadmin pueden ejecutar sp_dropdistributiondb.