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


sp_droppublication (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_droppublication
    [ @publication = ] N'publication'
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @from_backup = ] from_backup ]
[ ; ]

Аргументы

[ @publication = ] N'publication'

Имя публикации, который нужно удалить. @publication — sysname без значения по умолчанию. Если all указано, все публикации удаляются из базы данных публикации, за исключением публикаций с подписками.

[ @ignore_distributor = ] ignore_distributor

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @publisher = ] N'publisher'

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @from_backup = ] from_backup

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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

0 (успешно) или 1 (сбой).

Замечания

sp_droppublication используется в репликации моментальных снимков и репликации транзакций.

sp_droppublication рекурсивно удаляет все статьи, связанные с публикацией, а затем удаляет саму публикацию. Публикацию нельзя удалить, если она является одной или несколькими подписками. Сведения об удалении подписок см. в разделе "Удаление принудительной подписки " и "Удаление подписки по запросу".

sp_droppublication При удалении публикации не удаляются опубликованные объекты из базы данных публикации или соответствующие объекты из базы данных подписки. При необходимости эти объекты могут быть удалены вручную при помощи инструкции DROP <object>.

Разрешения

Могут выполняться sp_droppublicationтолько члены предопределенных ролей сервера sysadmin.

Примеры

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 

-- Remove a transactional publication.
USE [AdventureWorks2022]
EXEC sp_droppublication @publication = @publication;

-- Remove replication objects from the database.
USE [master]
EXEC sp_replicationdboption 
  @dbname = @publicationDB, 
  @optname = N'publish', 
  @value = N'false';
GO