sp_dropmergepublication (Transact-SQL)

适用范围:SQL Server

删除合并发布及其关联的快照代理。 删除合并发布之前必须删除全部的订阅。 发布中的项目将自动删除。 此存储过程在发布服务器上对发布数据库执行。

Transact-SQL 语法约定

语法

sp_dropmergepublication
    [ @publication = ] N'publication'
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @reserved = ] reserved ]
    [ , [ @ignore_merge_metadata = ] ignore_merge_metadata ]
[ ; ]

参数

[ @publication = ] N'publication'

要删除的发布的名称。 @publicationsysname,无默认值。 如果all删除了所有现有合并发布,以及与其关联的快照代理作业。 如果为@publication指定特定值,则只会删除该发布及其关联的快照代理作业。

[ @ignore_distributor = ] ignore_distributor

用于删除发布但不清除分发服务器上的任务。 @ignore_distributor,默认值为 0. 重新安装分发服务器时也将使用此参数。

[ @reserved = ] reserved

保留供将来使用。 @reserved,默认值为 0.

[ @ignore_merge_metadata = ] ignore_merge_metadata

标识为仅供参考。 不支持。 不保证以后的兼容性。

返回代码值

0(成功)或 1(失败)。

注解

sp_dropmergepublication 用于合并复制。

sp_dropmergepublication 递归删除与发布关联的所有项目,然后删除发布本身。 如果发布是一个或多个订阅,则无法将其删除。 有关如何删除订阅的信息,请参阅 “删除推送订阅 ”和 “删除请求订阅”。

执行 sp_dropmergepublication 删除发布不会从发布数据库中删除已发布对象或订阅数据库中的相应对象。 如果需要,可以使用 DROP <object> 手动删除这些对象。

示例

DECLARE @publication AS sysname
DECLARE @publicationDB    AS sysname
SET @publication = N'AdvWorksSalesOrdersMerge' 
SET @publicationDB = N'AdventureWorks'

-- Remove the merge publication.
USE [AdventureWorks]
EXEC sp_dropmergepublication @publication = @publication;

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

权限

只有 sysadmin 固定服务器角色的成员db_owner固定数据库角色的成员才能执行sp_dropmergepublication