sp_dropdistributor (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'AdventureWorks2008R2';
-- Disable the publication database.
USE [AdventureWorks2008R2]
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.