Freigeben über


sp_dropdistributiondb (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Löscht eine Verteilungsdatenbank. Legt die physischen Dateien ab, die von der Datenbank verwendet werden, wenn sie nicht von einer anderen Datenbank verwendet werden. Diese gespeicherte Prozedur wird beim Distributor auf einer beliebigen Datenbank ausgeführt.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @database = ] N'datenbank'

Die datenbank, die abzulegen ist. @database ist "sysname" ohne Standard.

[ @former_ag_secondary = ] former_ag_secondary

Gibt an, ob dieser Knoten zuvor Teil einer Verfügbarkeitsgruppe für die Verteilerdatenbank war. @former_ag_secondary ist int, mit einem Standardwert von 0.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_dropdistributiondb wird in allen Replikationstypen verwendet.

Diese gespeicherte Prozedur muss ausgeführt werden, bevor der Verteiler abgelegt wird, indem er ausgeführt wird sp_dropdistributor.

sp_dropdistributiondb Entfernt außerdem einen Warteschlangenleser-Agent-Auftrag für die Verteilungsdatenbank, sofern vorhanden.

Zum Deaktivieren der Verteilung muss die Verteilungsdatenbank online geschaltet sein. Wenn eine Datenbankmomentaufnahme für die Verteilungsdatenbank vorhanden ist, muss diese vor dem Deaktivieren der Verteilung gelöscht werden. Eine Datenbankmomentaufnahme ist eine schreibgeschützte Offlinekopie einer Datenbank und ist nicht mit einer Replikationsmomentaufnahme verknüpft. Weitere Informationen finden Sie unter Datenbankmomentaufnahmen (SQL Server).

Beispiele

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können ausgeführt werden sp_dropdistributiondb.