Cómo eliminar una suscripción de inserción (programación de la replicación con Transact-SQL)

Las suscripciones de inserción pueden eliminarse mediante programación con procedimientos almacenados de replicación. Los procedimientos almacenados que se usen dependerán del tipo de publicación a la que corresponda la suscripción.

Para eliminar una suscripción de inserción a una publicación transaccional o de instantáneas

  1. En la base de datos de publicación del publicador, ejecute sp_dropsubscription (Transact-SQL). Especifique @publication y @subscriber. Especifique un valor de all para @article. (Opcional) Si no se puede tener acceso al Distribuidor, especifique un valor de 1 para @ignore_distributor para eliminar la suscripción sin quitar los objetos relacionados en el Distribuidor.

  2. En la base de datos de suscripciones del suscriptor, ejecute sp_subscription_cleanup (Transact-SQL) para quitar los metadatos de replicación en la base de datos de suscripciones.

Para eliminar una suscripción de inserción a una publicación de mezcla

  1. En el Publicador, ejecute sp_dropmergesubscription (Transact-SQL), especificando @publication, @subscriber y @subscriber_db. (Opcional) Si no se puede tener acceso al Distribuidor, especifique un valor de 1 para @ignore_distributor para eliminar la suscripción sin quitar los objetos relacionados en el Distribuidor.

  2. En el suscriptor de la base de datos de suscripciones, ejecute sp_mergesubscription_cleanup (Transact-SQL). Especifique @publisher, @publisher_db y @publication. Esto quita los metadatos de mezcla de la base de datos de suscripciones.

Ejemplo

En este ejemplo se elimina una suscripción de inserción a una publicación transaccional.

-- 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".

-- This batch is executed at the Publisher to remove 
-- a pull or push subscription to a transactional publication.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);

USE [AdventureWorks]
EXEC sp_dropsubscription 
  @publication = @publication, 
  @article = N'all',
  @subscriber = @subscriber;
GO

En este ejemplo se elimina una suscripción de inserción a una publicación de mezcla.

-- 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".

-- This batch is executed at the Publisher to remove 
-- a pull or push subscription to a merge publication.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

USE [AdventureWorks]
EXEC sp_dropmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB;
GO