Udostępnij za pośrednictwem


Jak Usuwanie subskrypcji wypychanej (Programowanie replikacji Transact-SQL)

Można usunąć subskrypcji wypychanych programowo za pomocą procedur przechowywanych replikacja.Procedury przechowywane używane zależą od typu publikacja, do której należy subskrypcja.

Aby usunąć subskrypcja wypychana migawka lub transakcyjnych publikacja

  1. Wydawca na baza danych publikacja, wykonanie sp_dropsubscription (języka Transact-SQL).Określ publikacja @ i @ subskrybent.Określ wartość wszystkich dla @ artykuł.(Opcjonalnie) Jeśli dystrybutor, nie są dostępne, należy określić wartość 1 dla @ ignore_distributor do usunięcia subskrypcja bez usuwania obiektów pokrewnych u dystrybutora.

  2. Subskrybent na baza danych subskrypcja, wykonać sp_subscription_cleanup (języka Transact-SQL) usunąć metadane replikacja w baza danych subskrypcja.

Aby usunąć subskrypcja wypychana do publikacja korespondencji seryjnej

  1. Wydawca, należy wykonać sp_dropmergesubscription (języka Transact-SQL), określając publikacja @, @ subskrybent i @ subscriber_db.(Opcjonalnie) Jeśli dystrybutor, nie są dostępne, należy określić wartość 1 dla @ ignore_distributor do usunięcia subskrypcja bez usuwania obiektów pokrewnych u dystrybutora.

  2. Subskrybent na baza danych subskrypcja, wykonać sp_mergesubscription_cleanup (języka Transact-SQL).Określ programu publisher @, @ publisher_db, i publikacja @.Spowoduje to usunięcie metadane korespondencji seryjnej z baza danych subskrypcja.

Przykład

W tym przykładzie usuwa subskrypcja wypychana do publikacja transakcyjnych.

-- 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 [AdventureWorks2008R2;]
EXEC sp_dropsubscription 
  @publication = @publication, 
  @article = N'all',
  @subscriber = @subscriber;
GO

W tym przykładzie usuwa subskrypcja wypychana do publikacja korespondencji seryjnej.

-- 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'AdventureWorks2008R2Replica';

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