Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Tar bort en artikel från en sammanslagningspublikation. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.
Transact-SQL syntaxkonventioner
Syntax
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'publicering'
Namnet på publikationen där man ska lämna en artikel. @publication är sysname, utan standard.
[ @article = ] Inte en artikel'
Namnet på artikeln som ska tas bort från den aktuella publikationen.
@article är sysname, utan standard. Om all, tas alla befintliga artiklar i den angivna sammanslagningspublikationen bort. Även om @article är all, måste publiceringen ändå tas bort separat från artikeln.
[ @ignore_distributor = ] ignore_distributor
Anger om denna lagrade procedur utförs utan att ansluta till distributören.
@ignore_distributor är bit, med en standard på 0.
[ @reserved = ] reserverad
Reserverad för framtida användning.
@reserved är bit, med en standard på 0.
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Aktiverar eller inaktiverar möjligheten att få en ögonblicksbild ogiltig.
@force_invalidate_snapshot är bit, med standardvärdet 0.
0specificerar att ändringar i sammanslagningsartikeln inte gör att snapshoten blir ogiltig.1betyder att ändringar i sammanslagningsartikeln kan göra snapshoten ogiltig, och om så är fallet ger ett värde i1tillstånd för att den nya snapshoten ska kunna uppträda.
[ @force_reinit_subscription = ] force_reinit_subscription
Erkänner att om man lägger bort artikeln måste befintliga prenumerationer ominitialiseras.
@force_reinit_subscription är lite, med standardvärdet 0.
0specificerar att borttagning av artikeln inte leder till att prenumerationen initialiseras igen.1innebär att om artikeln tas bort får befintliga prenumerationer att initieras om, och ger tillåtelse för prenumerationsominitiering.
[ @ignore_merge_metadata = ] ignore_merge_metadata
Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Anmärkningar
sp_dropmergearticle används vid sammanslagningsreplikation. För mer information om att ta bort artiklar, se Lägg till artiklar till och Ta bort artiklar från befintliga publikationer.
Att köra sp_dropmergearticle för att ta bort en artikel från en publikation tar inte bort objektet från publikationsdatabasen eller motsvarande objekt från prenumerationsdatabasen. Använd DROP <object> det för att ta bort dessa objekt manuellt om det behövs.
Permissions
Endast medlemmar av sysadmin-rollen med fast server eller db_owner fast databasroll kan köra sp_dropmergearticle.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
A. Ta bort artiklar från en sammanslagningspublikation
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. Filter för att släppa sammanslagning och relaterade artiklar
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