sp_droppublication (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

卸除發行集及其相關聯的 快照集代理程式。 卸除發行集之前,必須先卸除所有訂閱。 發行集中的文章會自動卸除。 這個預存程式會在發行集資料庫的發行者端執行。

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

範例

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