Поделиться через


sp_dropdistributiondb (Transact-SQL)

Сбрасывает базу данных распространителя. Сбрасывает физические файлы, используемые базой данных, если они не используются другой базой данных. Эта хранимая процедура выполняется на распространителе в любой базе данных.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_dropdistributiondb [ @database= ] 'database'

Аргументы

  • [ @database=] 'database'
    Сбрасываемая база данных. Аргумент database имеет тип sysname и не имеет значения по умолчанию.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Хранимая процедура sp_dropdistributiondb используется при репликации всех типов.

Эта хранимая процедура должна быть выполнена перед удалением распространителя с помощью выполнения процедуры sp_dropdistributor.

Процедура sp_dropdistributiondb также удаляет задание агента чтения очереди для базы данных распространителя, если оно существует.

Чтобы отключить распространение, база данных распространителя должна быть в оперативном режиме. Если для базы данных распространителя существует моментальный снимок базы данных, он должен быть сброшен перед отключением распространения. Моментальный снимок базы данных доступен только для чтения в виде автономной копии базы данных и не относится к моментальному снимку репликации. Дополнительные сведения см. в разделе Моментальные снимки базы данных.

Пример

-- 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'AdventureWorks';

-- Disable the publication database.
USE [AdventureWorks]
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

Разрешения

Только члены предопределенной роли сервера sysadmin могут выполнять процедуру sp_dropdistributiondb.