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


sp_dropdistributor (Transact-SQL)

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

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

Синтаксис

sp_dropdistributor [ [ @no_checks= ] no_checks ] 
    [ , [ @ignore_distributor= ] ignore_distributor ]

Аргументы

  • [ @no_checks=] no_checks
    Показывает, нужно ли проверять зависимые объекты перед удалением распространителя. Аргумент no_checks имеет тип bit и значение по умолчанию 0.

    Если указано значение 0, хранимая процедура sp_dropdistributor дополнительно проверяет, удалены ли все объекты публикации и распространения вместе с распространителем.

    Если указано значение 1, хранимая процедура sp_dropdistributor перед удалением распространителя удаляет все объекты публикации и распространения.

  • [ **@ignore_distributor=**ignore_distributor ignore_distributor
    Указывает, выполняется ли эта хранимая процедура без подключения к распространителю. Аргумент ignore_distributor имеет тип bit и значение по умолчанию 0.

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

    Если указано значение 1, соединение с распространителем не устанавливается, и объекты репликации не удаляются. Этот вариант используется при удалении распространителя или если он постоянно работает в автономном режиме. Объекты издателя на распространителе не удаляются до тех пор, пока распространитель не будет переустановлен.

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

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

Замечания

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

При существовании на сервере других объектов издателя или распространения хранимая процедура sp_dropdistributor завершается сбоем, если только аргумент @no_checks не имеет значение 1.

Эта хранимая процедура должна быть выполнена после удаления базы данных распространителя с помощью процедуры 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

Разрешения

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