Bir Makaleyi Sil

Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği

Bu konu, Transact-SQL veya Replikasyon Yönetim Nesneleri (RMO) kullanılarak SQL Server bir makalenin nasıl silineceğini açıklar. Makalelerin hangi koşullarda kaldırılabileceği ve bir makalenin bırakılmasının yeni bir anlık görüntü mi yoksa aboneliklerin yeniden başlatılması mı gerektiği hakkında bilgi için Mevcut Yayınlara Makale Ekle ve Makaleleri Bırak bölümünü inceleyebilirsiniz.

Transact-SQL Kullanımı

Makaleler, çoğaltma depolanan prosedürler kullanılarak programatik olarak silinebilir. Kullandığınız saklanan prosedürler, makalenin ait olduğu yayın türüne bağlıdır.

Bir anlık görüntü veya işlemsel yayın içindeki bir maddeyi silmek

  1. @publication tarafından belirtilen bir yayından @article tarafından belirtilen bir makaleyi silmek için sp_droparticle (Transact-SQL ) çalıştırın. @force_invalidate_snapshot için 1 değeri belirtin.

  2. (İsteğe bağlı) Yayınlanan nesneyi veritabanından tamamen kaldırmak için, Publisher'da yayın veritabanında komutu DROP <objectname> çalıştırın.

Birleştirme yayınından bir makaleyi silmek

  1. Bir yayından, @publication tarafından belirtilen, @article tarafından belirtilen bir makaleyi silmek için sp_dropmergearticle (Transact-SQL) yürütün. Gerekirse, @force_invalidate_snapshot için 1, @force_reinit_subscription için 1 değer belirtin.

  2. (İsteğe bağlı) Yayınlanan nesneyi veritabanından tamamen kaldırmak için, Publisher'da yayın veritabanında komutu DROP <objectname> çalıştırın.

Örnekler (Transact-SQL)

Aşağıdaki örnek, bir işlemsel yayından bir makaleyi silir. Bu değişiklik mevcut anlık görüntüyü geçersiz kıldığı için, @force_invalidate_snapshot parametresi için 1 değeri belirtilir.

DECLARE @publication AS sysname;  
DECLARE @article AS sysname;  
SET @publication = N'AdvWorksProductTran';   
SET @article = N'Product';   
  
-- Drop the transactional article.  
USE [AdventureWorks]  
EXEC sp_droparticle   
  @publication = @publication,   
  @article = @article,  
  @force_invalidate_snapshot = 1;  
GO  

Aşağıdaki örnek, bir birleşme yayınından iki makaleyi silmektedir. Bu değişiklikler mevcut anlık görüntüyü geçersiz kıldığı için, @force_invalidate_snapshot parametresi için 1 değeri belirtilir.

DECLARE @publication AS sysname;  
DECLARE @article1 AS sysname;  
DECLARE @article2 AS sysname;  
SET @publication = N'AdvWorksSalesOrdersMerge';  
SET @article1 = N'SalesOrderDetail';   
SET @article2 = N'SalesOrderHeader';   
  
-- Remove articles from a merge publication.  
USE [AdventureWorks]  
EXEC sp_dropmergearticle   
  @publication = @publication,   
  @article = @article1,  
  @force_invalidate_snapshot = 1;  
EXEC sp_dropmergearticle   
  @publication = @publication,   
  @article = @article2,  
  @force_invalidate_snapshot = 1;  
GO  

Çoğaltma Yönetimi Nesnelerini (RMO) Kullanma

Makaleleri Replikasyon Yönetim Nesneleri (RMO) kullanarak programatik olarak silebilirsiniz. Bir makaleyi silmek için kullandığınız RMO sınıfları, makalenin ait olduğu yayın türüne bağlıdır.

Bir anlık görüntü yayınına veya işlemsel yayına ait bir makaleyi silmek için

  1. sınıfını kullanarak ServerConnection Publisher'a bir bağlantı oluşturun.

  2. TransArticle sınıfının bir örneğini oluşturun.

  3. Name, PublicationNameve DatabaseName özelliklerini ayarlayın.

  4. Özelliği için 1. adımdaki ConnectionContext bağlantıyı ayarlayın.

  5. Makalenin mevcut olduğunu doğrulamak için IsExistingObject özelliğini kontrol edin. Eğer bu özelliğin değeri yanlışsa, ya 3. adımdaki makale özellikleri yanlış tanımlanmıştır ya da makale yoktur.

  6. yöntemini çağırın Remove .

  7. Tüm bağlantıları kapatın.

Birleştirme yayınına ait bir makaleyi silmek

  1. sınıfını kullanarak ServerConnection Publisher'a bir bağlantı oluşturun.

  2. MergeArticle sınıfının bir örneğini oluşturun.

  3. Name, PublicationNameve DatabaseName özelliklerini ayarlayın.

  4. Özelliği için 1. adımdaki ConnectionContext bağlantıyı ayarlayın.

  5. Makalenin mevcut olduğunu doğrulamak için IsExistingObject özelliğini denetleyin. Eğer bu özelliğin değeri yanlışsa, ya 3. adımdaki makale özellikleri yanlış tanımlanmıştır ya da makale yoktur.

  6. yöntemini çağırın Remove .

  7. Tüm bağlantıları kapatın.