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
Odstraní článek z publikace pro sloučení. Tato uložená procedura se spustí v Publisheru v databázi publikace.
Syntaxe
sp_dropmergearticle
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @reserved = ] reserved ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @ignore_merge_metadata = ] ignore_merge_metadata ]
[ ; ]
Arguments
[ @publication = ] N'publikace'
Název publikace, ze které se článek vydává. @publication je sysname, bez výchozího nastavení.
[ @article = ] N'článek'
Název článku, který se má odstranit z daného publikace.
@article je sysname, bez výchozího nastavení. Pokud all, všechny existující články ve specifikované publikaci sloučení jsou odstraněny. I když @article je all, publikace musí být stále oddělena od článku.
[ @ignore_distributor = ] ignore_distributor
Označuje, zda je tato uložená procedura vykonána bez připojení k distributorovi.
@ignore_distributor je bit, s výchozím nastavením 0.
[ @reserved = ] vyhrazeno
Vyhrazeno pro budoucí použití.
@reserved je bit, s výchozím hodnotou 0.
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Povolí nebo zakáže zneplatnění snímku.
@force_invalidate_snapshot je bit s výchozím nastavením 0.
0Specifikuje, že změny v článku o sloučení nezpůsobují, že by byl snapshot neplatný.1To znamená, že změny v článku o sloučení mohou způsobit, že snapshot bude neplatný, a pokud je tomu tak, hodnota z1dává povolení k vzniku nového snapshotu.
[ @force_reinit_subscription = ] force_reinit_subscription
Uznává, že zrušení článku vyžaduje opětovné inicializaci stávajících předplatných.
@force_reinit_subscription je bit s výchozím nastavením 0.
0Specifikuje, že zrušení článku nezpůsobí opětovné inicializaci předplatného.1Znamená to, že zrušení článku způsobí opětovnou inicializaci stávajících odběratelů a dává povolení k opětovné inicializaci předplatného.
[ @ignore_merge_metadata = ] ignore_merge_metadata
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
Hodnoty návratového kódu
0 (úspěch) nebo 1 (selhání).
Poznámky
sp_dropmergearticle se používá při replikaci při slučování. Pro více informací o vyřazování článků viz Přidat články do a Odebrat články z existujících publikací.
Spuštění sp_dropmergearticle odstranění článku z publikace objekt z publikace neodstraní z databáze publikací ani odpovídající objekt z databáze předplatného. Použijte DROP <object> tyto objekty k ručnímu odstranění, pokud je to nutné.
Povolení
Pouze členové role pevného správce systému nebo role db_owner pevné databáze mohou vykonávat sp_dropmergearticle.
Examples
Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .
A. Odstraňte články z publikace po sloučení
USE [AdventureWorks2022];
GO
DECLARE @publication AS SYSNAME;
DECLARE @article1 AS SYSNAME;
DECLARE @article2 AS SYSNAME;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article1 = N'SalesOrderDetail';
SET @article2 = N'SalesOrderHeader';
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @article1,
@force_invalidate_snapshot = 1;
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @article2,
@force_invalidate_snapshot = 1;
GO
B. Drop merge join filtry a související články
USE [AdventureWorks2022];
GO
DECLARE @publication AS SYSNAME;
DECLARE @table1 AS SYSNAME;
DECLARE @table2 AS SYSNAME;
DECLARE @table3 AS SYSNAME;
DECLARE @salesschema AS SYSNAME;
DECLARE @hrschema AS SYSNAME;
DECLARE @filterclause AS NVARCHAR (1000);
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @table1 = N'Employee';
SET @table2 = N'SalesOrderHeader';
SET @table3 = N'SalesOrderDetail';
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';
-- Drop the merge join filter between SalesOrderHeader and SalesOrderDetail.
EXECUTE sp_dropmergefilter
@publication = @publication,
@article = @table3,
@filtername = N'SalesOrderDetail_SalesOrderHeader',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the merge join filter between Employee and SalesOrderHeader.
EXECUTE sp_dropmergefilter
@publication = @publication,
@article = @table2,
@filtername = N'SalesOrderHeader_Employee',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the SalesOrderDetail table.
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @table3,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the SalesOrderHeader table.
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @table2,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the Employee table.
EXECUTE sp_dropmergearticle
@publication = @publication,
@article = @table1,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO