sp_dropdistpublisher (Transact-SQL)
Удаляет издателя распространителя. Эта хранимая процедура выполняется на распространителе в любой базе данных.
Синтаксис
sp_dropdistpublisher [ @publisher = ] 'publisher'
[ , [ @no_checks = ] no_checks ]
[ , [ @ignore_distributor = ] ignore_distributor ]
Аргументы
[ @publisher= ] 'publisher'
Удаляемый издатель. Аргумент publisher имеет тип sysname и не имеет значения по умолчанию.[ @no_checks= ] no_checks
Указывает, проверяет ли процедура sp_dropdistpublisher отмену установки издателем данного сервера в качестве распространителя. Аргумент no_checks имеет тип bit и значение по умолчанию 0.При значении 0 репликация проверяет, что удаленный издатель отменил установку локального сервера в качестве распространителя. Если издатель является локальным, репликация проверит отсутствие на локальном сервере объектов публикации или распространителя.
При значении 1 удаляются все объекты репликации, связанные с издателем распространителя, даже если удаленный издатель недоступен. После этого удаленный издатель должен удалить репликацию при помощи процедуры sp_dropdistributor с аргументом @ignore_distributor = 1.
[ @ignore_distributor= ] ignore_distributor
Указывает, остались ли на распространителе объекты распространения после удаления издателя. Аргумент ignore_distributor имеет тип bit и может принимать одно из следующих значений:1 = объекты распространения, принадлежащие издателю, остаются на распространителе.
0 = объекты распространения издателя очищаются на распространителе.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_dropdistpublisher используется для всех типов репликации.
При невозможности удаления издателя Oracle sp_dropdistpublisher возвращает ошибку, а объекты распространителя для издателя удаляются.
Пример
-- 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_dropdistpublisher.