sp_dropmergearticle (Transact-SQL)
Gilt für: SQL Server
Entfernt einen Artikel aus einer Mergeveröffentlichung. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.
Transact-SQL-Syntaxkonventionen
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 ]
[ ; ]
Argumente
[ @publication = ] N'Publikation'
Der Name der Publikation, aus der ein Artikel gelöscht werden soll. @publication ist "sysname" ohne Standard.
[ @article = ] N'article'
Der Name des Artikels, der aus der angegebenen Publikation entfernt werden soll. @article ist "sysname" ohne Standard. Wenn all
alle vorhandenen Artikel in der angegebenen Zusammenführungsveröffentlichung entfernt werden. Auch wenn @article ist all
, muss die Publikation weiterhin getrennt vom Artikel abgelegt werden.
[ @ignore_distributor = ] ignore_distributor
Gibt an, ob diese gespeicherte Prozedur ausgeführt wird, ohne eine Verbindung mit dem Verteiler herzustellen. @ignore_distributor ist bit, mit einem Standardwert von 0
.
[ @reserved = ] reserviert
Für die zukünftige Verwendung reserviert. @reserved ist bit, mit einem Standardwert von 0
.
[ @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 bit, mit einem Standardwert von 0
.
0
Gibt an, dass Änderungen am Seriendruckartikel nicht dazu führen, dass die Momentaufnahme ungültig ist.1
bedeutet, dass Änderungen am Seriendruckartikel dazu führen können, dass die Momentaufnahme ungültig ist, und wenn dies der Fall ist, erhält ein Wert der1
Berechtigung für die neue 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 bit, mit einem Standardwert von 0
.
0
Gibt an, dass das Ablegen des Artikels nicht dazu führt, dass das Abonnement erneut initialisiert wird.1
bedeutet, dass das Ablegen des Artikels bewirkt, dass vorhandene Abonnements erneut initialisiert werden, und erteilt die Berechtigung für die Erneute Initialisierung des Abonnements.
[ @ignore_merge_metadata = ] ignore_merge_metadata
Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
sp_dropmergearticle
wird in der Seriendruckreplikation verwendet. Weitere Informationen zum Ablegen von Artikeln finden Sie unter Hinzufügen von Artikeln zu und Ablegen von Artikeln aus vorhandenen Publikationen.
Wenn sp_dropmergearticle
Sie ausführen, um einen Artikel aus einer Publikation abzulegen, wird das Objekt nicht aus der Publikationsdatenbank oder dem entsprechenden Objekt aus der Abonnementdatenbank entfernt. Verwenden Sie DROP <object>
, um diese Objekte bei Bedarf manuell zu entfernen.
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder die db_owner feste Datenbankrolle können ausgeführt werden sp_dropmergearticle
.
Beispiele
Die Transact-SQL-Codebeispiele in diesem Artikel verwenden die AdventureWorks2022
- oder AdventureWorksDW2022
-Beispieldatenbank, die Sie von der Homepage Microsoft SQL Server Samples and Community Projects herunterladen können.
A. Entfernen von Artikeln aus einer Zusammenführungsveröffentlichung
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';
EXEC sp_dropmergearticle @publication = @publication,
@article = @article1,
@force_invalidate_snapshot = 1;
EXEC sp_dropmergearticle @publication = @publication,
@article = @article2,
@force_invalidate_snapshot = 1;
GO
B. Zusammenführen von Verknüpfungsfiltern und verwandten Artikeln
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.
EXEC 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.
EXEC 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.
EXEC sp_dropmergearticle @publication = @publication,
@article = @table3,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the SalesOrderHeader table.
EXEC sp_dropmergearticle @publication = @publication,
@article = @table2,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
-- Drop the article for the Employee table.
EXEC sp_dropmergearticle @publication = @publication,
@article = @table1,
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO