Udostępnij za pośrednictwem


Jak Usuwanie publikacji (Programowanie replikacji Transact-SQL)

Publikacje można usunąć programowo za pomocą procedur przechowywanych replikacja.Procedury przechowywane, których używasz zależą od typu publikacja, zostaną usunięte.

Ostrzeżenie

Usuwanie publikacja nie powoduje usunięcia opublikowanych obiektów z bazy danych publikacja lub odpowiednich obiektów z baza danych subskrypcja.Użyj DROP <object> polecenie ręcznie usunąć te obiekty, jeśli to konieczne.

Aby usunąć migawka lub transakcyjnych publikacja

  1. Wykonaj jedną z następujących czynności:

    • Aby usunąć pojedynczy publikacja, należy wykonać sp_droppublication Wydawca na baza danych publikacja.

    • Aby usunąć wszystkie publikacje w i usunąć wszystkie obiekty replikacja z opublikowaną bazą danych, wykonywanie sp_removedbreplication na Wydawca.Określ wartość tran dla typu @.(Opcjonalnie) Nie można uzyskać dostępu do dystrybutora lub stan bazy danych jest podejrzana lub w trybie offline, należy określić wartość 1 dla życie @.(Opcjonalnie) Określ nazwę bazy danych dla @ dbname Jeśli sp_removedbreplication nie jest wykonywana na baza danych publikacja.

      Ostrzeżenie

      Określając wartość 1 dla życie @ może opuścić replikacja-dotyczące publikowania obiektów bazy danych.

  2. (Opcjonalnie) Jeśli ta baza danych nie ma żadnych innych publikacji, wykonywał sp_replicationdboption (języka Transact-SQL) wyłączyć publikacja bieżącej bazy danych przy użyciu migawka lub replikacja transakcyjna.

  3. (Opcjonalnie) Subskrybent na baza danych subskrypcja, wykonać sp_subscription_cleanup usunąć wszelkie pozostałe metadane replikacja w baza danych subskrypcja.

Aby usunąć publikacja seryjnej

  1. Wykonaj jedną z następujących czynności:

    • Aby usunąć pojedynczy publikacja, należy wykonać sp_dropmergepublication (języka Transact-SQL) Wydawca na baza danych publikacja.

    • Aby usunąć wszystkie publikacje w i usunąć wszystkie obiekty replikacja z opublikowaną bazą danych, wykonywanie sp_removedbreplication na Wydawca.Określ wartość merge dla typu @.(Opcjonalnie) Nie można uzyskać dostępu do dystrybutora lub stan bazy danych jest podejrzana lub w trybie offline, należy określić wartość 1 dla życie @.(Opcjonalnie) Określ nazwę bazy danych dla @ dbname Jeśli sp_removedbreplication nie jest wykonywana na baza danych publikacja.

      Ostrzeżenie

      Określając wartość 1 dla życie @ może opuścić replikacja-dotyczące publikowania obiektów bazy danych.

  2. (Opcjonalnie) Jeśli ta baza danych nie zawiera żadnych innych publikacji, wykonać sp_replicationdboption (języka Transact-SQL) wyłączyć publikacja bieżącej bazy danych przy użyciu replikacja scalająca.

  3. (Opcjonalnie) Subskrybent na baza danych subskrypcja, wykonać sp_mergesubscription_cleanup (języka Transact-SQL) usunąć wszelkie pozostałe metadane replikacja w baza danych subskrypcja.

Przykład

W tym przykładzie przedstawiono sposób usunąć transakcyjnych publikacja i wyłączenie transakcyjnych publikowania bazy danych.W tym przykładzie założono, że wcześniej usunięto wszystkie subskrypcje.Aby uzyskać więcej informacji, zobacz Jak Usuwanie subskrypcji ściąganej (Programowanie replikacji Transact-SQL) lub Jak Usuwanie subskrypcji wypychanej (Programowanie replikacji Transact-SQL).

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksProductTran'; 

-- Remove a transactional publication.
USE [AdventureWorks2008R2]
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

W tym przykładzie przedstawiono sposób usunąć publikacja korespondencji seryjnej i wyłączyć publikowanie scalania dla bazy danych.W tym przykładzie założono, że wcześniej usunięto wszystkie subskrypcje.Aby uzyskać więcej informacji, zobacz Jak Usuwanie subskrypcji ściąganej (Programowanie replikacji Transact-SQL) lub Jak Usuwanie subskrypcji wypychanej (Programowanie replikacji Transact-SQL).

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