Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Managed Instance
Toto téma popisuje, jak smazat článek v SQL Server pomocí Transact-SQL nebo Replication Management Objects (RMO). Pro informace o podmínkách, za kterých lze články zrušit, a zda odstranění článku vyžaduje nový snapshot nebo znovuzahájení předplatného, viz Přidat články a odebrat články z existujících publikací.
Použití Transact-SQL
Články lze programově mazat pomocí replikačních uložených procedur. Uložené postupy, které použijete, závisí na typu publikace, ke které článek patří.
Smazání článku ze snapshotu nebo transakční publikace
Proveďte sp_droparticle (Transact-SQL) pro smazání článku, specifikovaného @article, z publikace, kterou určil @publication. Zadejte hodnotu 1 pro @force_invalidate_snapshot.
(Volitelné) Pro úplné odstranění publikovaného objektu z databáze spusťte
DROP <objectname>příkaz v Publisher databázi publikací.
Smazání článku z publikace pro sloučení
Proveďte sp_dropmergearticle (Transact-SQL) pro smazání článku, specifikovaného @article, z publikace specifikované @publication. Pokud je to nutné, určeme hodnotu 1 pro @force_invalidate_snapshot a hodnotu 1 pro @force_reinit_subscription.
(Volitelné) Pro úplné odstranění publikovaného objektu z databáze spusťte
DROP <objectname>příkaz v Publisher databázi publikací.
Příklady (Transact-SQL)
Následující příklad maže článek z transakční publikace. Protože tato změna zneplatňuje stávající snímek, je pro parametr @force_invalidate_snapshot určena hodnota 1.
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
Následující příklad maže dva články z publikace při sloučení. Protože tyto změny zneplatňují stávající snímek, je pro parametr @force_invalidate_snapshot určena hodnota 1.
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
Použití objektů správy replikace (RMO)
Články můžete programově mazat pomocí Replication Management Objects (RMO). Třídy RMO, které použijete k mazání článku, závisí na typu publikace, ke které článek patří.
Odstranění článku patřícího do snímkové nebo transakční publikace
Vytvořte připojení k Publisheru pomocí ServerConnection třídy.
Vytvořte instanci TransArticle třídy.
Nastavte vlastnosti Name, PublicationNamea DatabaseName.
Nastavte připojení z kroku 1 pro vlastnost ConnectionContext.
Zkontrolujte vlastnost IsExistingObject, abyste ověřili, zda článek existuje. Pokud je hodnota této vlastnosti nepravdivá, buď byly vlastnosti článku v kroku 3 definovány nesprávně, nebo článek neexistuje.
Zavolejte metodu Remove .
Uzavřete všechna připojení.
Odstranění článku, který patří do publikace sloučení
Vytvořte připojení k Publisheru pomocí ServerConnection třídy.
Vytvořte instanci MergeArticle třídy.
Nastavte vlastnosti Name, PublicationNamea DatabaseName.
Nastavte připojení z kroku 1 pro vlastnost ConnectionContext.
Zkontrolujte vlastnost IsExistingObject, abyste ověřili, zda článek existuje. Pokud je hodnota této vlastnosti nepravdivá, buď byly vlastnosti článku v kroku 3 definovány nesprávně, nebo článek neexistuje.
Zavolejte metodu Remove .
Uzavřete všechna připojení.