Löschen eines ArtikelsDelete an Article

GILT FÜR: jaSQL Server jaAzure SQL-Datenbank (nur verwaltete Instanz) neinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

In diesem Thema wird beschrieben, wie ein Artikel in SQL Server 2017SQL Server 2017 mit Transact-SQLTransact-SQL oder Replikationsverwaltungsobjekten (RMO) gelöscht wird.This topic describes how to delete an article in SQL Server 2017SQL Server 2017 by using Transact-SQLTransact-SQL or Replication Management Objects (RMO). Informationen über die Bedingungen, unter denen Artikel gelöscht werden können, und darüber, ob das Löschen eines Artikels eine neue Momentaufnahme oder die erneute Initialisierung der Abonnements erforderlich macht, finden Sie unter Hinzufügen und Löschen von Artikeln aus vorhandenen Veröffentlichungen.For information about the conditions under which articles can be dropped and whether dropping an article requires a new snapshot or the reinitialization of subscriptions, see Add Articles to and Drop Articles from Existing Publications.

In diesem ThemaIn This Topic

Verwenden von Transact-SQLUsing Transact-SQL

Artikel können programmgesteuert mit gespeicherten Replikationsprozeduren gelöscht werden.Articles can be deleted programmatically using replication stored procedures. Die verwendeten gespeicherten Prozeduren hängen vom Typ der Veröffentlichung ab, zu der der Artikel gehört.The stored procedures that you use depend on the type of publication to which the article belongs.

So löschen Sie einen Artikel aus einer Momentaufnahme- oder TransaktionsveröffentlichungTo delete an article from a snapshot or transactional publication

  1. Führen Sie sp_droparticle (Transact-SQL) aus, um einen durch @article angegebenen Artikel aus der durch @publication angegebenen Veröffentlichung zu löschen.Execute sp_droparticle (Transact-SQL) to delete an article, specified by @article, from a publication, specified by @publication. Geben Sie für @force_invalidate_snapshot den Wert 1 an.Specify a value of 1 for @force_invalidate_snapshot.

  2. (Optional) Um das veröffentlichte Objekt vollständig aus der Veröffentlichungsdatenbank zu löschen, führen Sie den Befehl DROP <objectname> auf dem Verleger für die Veröffentlichungsdatenbank aus.(Optional) To remove the published object from the database entirely, execute the DROP <objectname> command at the Publisher on the publication database.

Wir hören Ihnen zu: Wenn Sie in diesem Artikel – beispielsweise in einem Schritt oder Codebeispiel – veraltete oder falsche Informationen finden, lassen Sie es uns bitte wissen.We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. Sie können unten auf dieser Seite im Abschnitt Feedback auf die Schaltfläche Diese Seite klicken.You can click the This page button in the Feedback section at the bottom of this page. Wir lesen jedes Feedback zu SQL in der Regel am nächsten Tag.We read every item of feedback about SQL, typically the next day. Vielen Dank.Thanks.

So löschen Sie einen Artikel aus einer MergeveröffentlichungTo delete an article from a merge publication

  1. Führen Sie sp_dropmergearticle (Transact-SQL) aus, um einen durch @article angegebenen Artikel aus der durch @publication angegebenen Veröffentlichung zu löschen.Execute sp_dropmergearticle (Transact-SQL) to delete an article, specified by @article, from a publication, specified by @publication. Geben Sie dafür ggf. für @force_invalidate_snapshot den Wert 1 und für @force_reinit_subscription den Wert 1 an.If necessary, specify a value of 1 for @force_invalidate_snapshot and a value of 1 for @force_reinit_subscription.

  2. (Optional) Um das veröffentlichte Objekt vollständig aus der Veröffentlichungsdatenbank zu löschen, führen Sie den Befehl DROP <objectname> auf dem Verleger für die Veröffentlichungsdatenbank aus.(Optional) To remove the published object from the database entirely, execute the DROP <objectname> command at the Publisher on the publication database.

Beispiele (Transact-SQL)Examples (Transact-SQL)

Im folgenden Beispiel wird ein Artikel aus einer Transaktionsveröffentlichung gelöscht.The following example deletes an article from a transactional publication. Da durch diese Änderung die vorhandene Momentaufnahme ungültig wird, wird für den Parameter @force_invalidate_snapshot der Wert 1 angegeben.Because this change invalidates the existing snapshot, a value of 1 is specified for the @force_invalidate_snapshot parameter.

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  

Im folgenden Beispiel werden zwei Artikel aus einer Mergeveröffentlichung gelöscht.The following example deletes two articles from a merge publication. Da durch diese Änderungen die vorhandene Momentaufnahme ungültig wird, wird für den Parameter @force_invalidate_snapshot der Wert 1 angegeben.Because these changes invalidate the existing snapshot, a value of 1 is specified for the @force_invalidate_snapshot parameter.

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  

Verwenden von Replikationsverwaltungsobjekten (RMO)Using Replication Management Objects (RMO)

Sie können Artikel mithilfe von Replikationsverwaltungsobjekten (RMO) programmgesteuert löschen.You can delete articles programmatically by using Replication Management Objects (RMO). Welche RMO-Klassen Sie zum Löschen eines Artikels verwenden, hängt vom Typ der Veröffentlichung ab, zu der der Artikel gehört.The RMO classes you use to delete an article depend on the type of publication to which the article belongs.

So löschen Sie einen Artikel, der zu einer Momentaufnahme- oder Transaktionsveröffentlichung gehörtTo delete an article that belongs to a snapshot or transactional publication

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.Create a connection to the Publisher by using the ServerConnection class.

  2. Erstellen Sie eine Instanz der TransArticle -Klasse.Create an instance of the TransArticle class.

  3. Legen Sie die Eigenschaften Name, PublicationNameund DatabaseName fest.Set the Name, PublicationName, and DatabaseName properties.

  4. Legen Sie die Verbindung aus Schritt 1 für die ConnectionContext -Eigenschaft fest.Set the connection from step 1 for the ConnectionContext property.

  5. Überprüfen Sie die IsExistingObject -Eigenschaft, um festzustellen, ob der Artikel vorhanden ist.Check the IsExistingObject property to verify that the article exists. Wenn der Wert dieser Eigenschaft falselautet, wurden entweder die Artikeleigenschaften in Schritt 3 falsch definiert, oder der Artikel ist nicht vorhanden.If the value of this property is false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. Rufen Sie die Remove -Methode auf.Call the Remove method.

  7. Trennen Sie alle Verbindungen.Close all connections.

So löschen Sie einen Artikel, der zu einer Mergeveröffentlichung gehörtTo delete an article that belongs to a merge publication

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.Create a connection to the Publisher by using the ServerConnection class.

  2. Erstellen Sie eine Instanz der MergeArticle -Klasse.Create an instance of the MergeArticle class.

  3. Legen Sie die Eigenschaften Name, PublicationNameund DatabaseName fest.Set the Name, PublicationName, and DatabaseName properties.

  4. Legen Sie die Verbindung aus Schritt 1 für die ConnectionContext -Eigenschaft fest.Set the connection from step 1 for the ConnectionContext property.

  5. Überprüfen Sie die IsExistingObject -Eigenschaft, um festzustellen, ob der Artikel vorhanden ist.Check the IsExistingObject property to verify that the article exists. Wenn der Wert dieser Eigenschaft falselautet, wurden entweder die Artikeleigenschaften in Schritt 3 falsch definiert, oder der Artikel ist nicht vorhanden.If the value of this property is false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. Rufen Sie die Remove -Methode auf.Call the Remove method.

  7. Trennen Sie alle Verbindungen.Close all connections.

Weitere InformationenSee Also

Hinzufügen und Löschen von Artikeln aus vorhandenen Veröffentlichungen Add Articles to and Drop Articles from Existing Publications
Replication System Stored Procedures ConceptsReplication System Stored Procedures Concepts