sp_dropmergearticle (Transact-SQL)
Entfernt einen Artikel aus einer Mergeveröffentlichung. Diese gespeicherte Prozedur wird auf Verlegerebene für die Veröffentlichungsdatenbank ausgeführt.
Transact-SQL-Syntaxkonventionen
Syntax
sp_dropmergearticle [ @publication= ] 'publication'
, [ @article= ] '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 ]
Argumente
[ @publication=] 'publication'
Der Name der Veröffentlichung, aus der ein Artikel gelöscht werden soll. publicationist vom Datentyp sysname und hat keinen Standardwert.[ @article=] 'article'
Der Name des Artikels, der aus der angegebenen Veröffentlichung gelöscht werden soll. articleist vom Datentyp sysname und hat keinen Standardwert. Mit all werden alle vorhandenen Artikel in der angegebenen Mergeveröffentlichung entfernt. Selbst wenn all für article angegeben wird, muss die Veröffentlichung separat aus dem Artikel gelöscht werden.[ @ignore_distributor=] ignore_distributor
Gibt an, ob diese gespeicherte Prozedur ausgeführt wird, ohne eine Verbindung mit dem Verteiler herzustellen. ignore_distributor ist vom vom Datentyp bit und hat den Standardwert 0.[ @reserved=] reserved
Ist für die zukünftige Verwendung reserviert. reserved ist vom Datentyp nvarchar(20) und hat den Standardwert NULL.[ @force_invalidate_snapshot=] force_invalidate_snapshot
Aktiviert oder deaktiviert die Möglichkeit, eine Momentaufnahme für ungültig zu erklären. force_invalidate_snapshot ist vom Datentyp bit. Der Standardwert ist 0.Durch 0 wird angegeben, dass die Momentaufnahme nicht durch Änderungen am Mergeartikel ungültig werden kann.
Der Wert 1 gibt an, dass Änderungen am Mergeartikel bewirken können, dass die Momentaufnahme ungültig wird. Wenn dies zutrifft, erteilt der Wert 1 die Berechtigung für das Auftreten der neuen Momentaufnahme.
[ @force_reinit_subscription = ] force_reinit_subscription
Bestätigt, dass durch das Löschen des Artikels eine erneute Initialisierung der vorhandenen Abonnements erforderlich wird. force_reinit_subscription ist vom Datentyp bit. Der Standardwert ist 0.Durch 0 wird angegeben, dass das Abonnement nicht durch das Löschen des Artikels erneut initialisiert werden kann.
Der Wert 1 gibt an, dass vorhandene Abonnements durch das Löschen des Artikels erneut initialisiert werden können. Außerdem wird mit diesem Wert die Berechtigung zur erneuten Initialisierung der Abonnements erteilt.
[ @ignore_merge_metadata= ] ignore_merge_metadata
Nur interne Verwendung.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_dropmergefilter wird für die Mergereplikation verwendet. Weitere Informationen zum Löschen von Artikeln finden Sie unter Hinzufügen und Löschen von Artikeln aus vorhandenen Veröffentlichungen.
Durch das Ausführen von sp_dropmergearticle zum Löschen eines Artikels aus einer Veröffentlichung wird das Objekt nicht aus der Veröffentlichungsdatenbank bzw. das entsprechende Objekt nicht aus der Abonnementdatenbank entfernt. Verwenden Sie DROP <object>, um diese Objekte bei Bedarf manuell zu entfernen.
Beispiel
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
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.
EXEC sp_dropmergefilter
@publication = @publication,
@article = @table3,
@filtername = N'SalesOrderDetail_SalesOrderHeader',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drops the merge join filter between Employee and SalesOrderHeader.
EXEC sp_dropmergefilter
@publication = @publication,
@article = @table2,
@filtername = N'SalesOrderHeader_Employee',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drops the article for the SalesOrderDetail table.
EXEC sp_dropmergearticle
@publication = @publication,
@article = @table3,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drops the article for the SalesOrderHeader table.
EXEC sp_dropmergearticle
@publication = @publication,
@article = @table2,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drops the article for the Employee table.
EXEC sp_dropmergearticle
@publication = @publication,
@article = @table1,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_dropmergearticle ausführen.
Siehe auch
Verweis
sp_addmergearticle (Transact-SQL)
sp_changemergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Gespeicherte Replikationsprozeduren (Transact-SQL)
Konzepte
Hinzufügen und Löschen von Artikeln aus vorhandenen Veröffentlichungen