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


sp_dropdistpublisher (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в 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.