Dela via


sp_dropmergepublication (Transact-SQL)

Drops a merge publication and its associated Snapshot Agent. All subscriptions must be dropped before dropping a merge publication. The articles in the publication are dropped automatically. This stored procedure is executed at the Publisher on the publication database.

Topic link iconTransact-SQL Syntax Conventions

Syntax

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

Arguments

  • [ @publication=] 'publication'
    Is the name of the publication to drop. publication is sysname, with no default. If all, all existing merge publications are removed as well as the Snapshot Agent job associated with them. If you specify a particular value for publication, only that publication and its associated Snapshot Agent job are dropped.

  • [ @ignore_distributor =] ignore_distributor
    Used to drop a publication without doing cleanup tasks at the Distributor. ignore_distributor is bit, with a default of 0. This parameter is also used when reinstalling the Distributor.

  • [ @reserved=] reserved
    Is reserved for future use. reserved is bit, with a default of 0.

  • [ @ignore_merge_metadata= ] ignore_merge_metadata
    Internal use only.

Return Code Values

0 (success) or 1 (failure)

Remarks

sp_dropmergepublication is used in merge replication.

sp_dropmergepublication recursively drops all articles that are associated with a publication and then drops the publication itself. A publication cannot be removed if it has one or more subscriptions to it. For information about how to remove subscriptions, see How to: Delete a Push Subscription (Replication Transact-SQL Programming) and How to: Delete a Pull Subscription (Replication Transact-SQL Programming).

Executing sp_dropmergepublication to drop a publication does not remove published objects from the publication database or the corresponding objects from the subscription database. Use DROP <object> to remove these objects manually if necessary.

Example

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

-- Remove the merge publication.
USE [AdventureWorks2008R2]
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

Permissions

Only members of the sysadmin fixed server role or the db_owner fixed database role can execute sp_dropmergepublication.