Hinzufügen und Löschen von Artikeln aus vorhandenen Veröffentlichungen

Nachdem eine Veröffentlichung erstellt wurde, können ihr Artikel hinzugefügt oder Artikel aus der Veröffentlichung gelöscht werden. Während das Hinzufügen von Artikeln jederzeit erfolgen kann, hängen die Schritte zum Löschen von Artikeln vom jeweiligen Replikationstyp und dem Zeitpunkt ab, zu dem der Artikel gelöscht wird.

Hinzufügen von Artikeln

Hinzufügen eines Artikels beinhaltet Folgendes: Hinzufügen des Artikels zur Veröffentlichung; Erstellen einer neuen Momentaufnahme für die Veröffentlichung und Synchronisieren des Abonnements zum Zuweisen des Schemas und der Daten für den neuen Artikel.

HinweisHinweis

Wenn Sie einen Artikel einer Mergereveröffentlichung und einen vorhandenen Artikel, der von einem neuen Artikel abhängt, hinzufügen, müssen Sie eine Verarbeitungsreihenfolge für beide Artikel mithilfe des @processing_order-Parameters von sp_addmergearticle und sp_changemergearticle angeben. Angenommen, Sie veröffentlichen eine Tabelle, aber Sie veröffentlichen keine Funktion, die auf die Tabelle verweist. Wenn Sie die Funktion nicht veröffentlichen, kann die Tabelle nicht auf dem Abonnenten erstellt werden. Wenn Sie die Funktion einer Veröffentlichung hinzufügen, geben Sie einen Wert von 1 für den @processing_order-Parameter von sp_addmergearticle an, und geben Sie einen Wert von 2 für den @processing_order-Parameter von sp_changemergearticle an. Geben Sie dann den Tabellennamen für den @article-Parameter an. Mit dieser Verarbeitungsreihenfolge wird sichergestellt, dass Sie eine Funktion auf dem Abonnenten vor der Tabelle erstellen, die davon abhängig ist. Sie können unterschiedliche Nummern für die einzelnen Artikel verwenden, dabei muss jedoch die Nummer für die Funktion kleiner als die Nummer der Tabelle sein.

  1. Zum Hinzufügen einzelner oder mehrerer Artikel stehen die folgenden Methoden zur Verfügung:

  2. Nachdem Sie einer Veröffentlichung einen Artikel hinzugefügt haben, müssen Sie eine neue Momentaufnahme für die Veröffentlichung (sowie – bei Mergeveröffentlichungen mit parametrisierten Filtern – für alle Partitionen) erstellen. Der Verteilungs-Agent oder der Merge-Agent kopiert dann das Schema und die Daten für den neuen Artikel auf den Abonnenten (ohne dabei die gesamte Veröffentlichung neu zu initialisieren).

  3. Synchronisieren Sie nach Abschluss der Momentaufnahmeerstellung das Abonnement, um das Schema und die Daten für den neuen Artikel zu kopieren.

Löschen von Artikeln

Artikel können jederzeit aus einer Veröffentlichung gelöscht werden, wobei jedoch Folgendes zu beachten ist:

  • Durch das Löschen eines Artikels aus einer Veröffentlichung wird weder das Objekt aus der Veröffentlichungsdatenbank noch das zugehörige Objekt aus der Abonnementdatenbank entfernt. Verwenden Sie DROP <Objekt>, um diese Objekte ggf. zu entfernen. Wenn Sie einen Artikel löschen möchten, der über Fremdschlüssel-Einschränkungen mit anderen veröffentlichten Artikeln verknüpft ist, sollten Sie die Tabelle auf dem Abonnenten manuell oder mithilfe einer bedarfsgesteuerten Skriptausführung löschen. Geben Sie ein Skript an, dass die entsprechenden DROP <Objekt>-Anweisungen enthält. Weitere Informationen finden Sie unter Ausführen von Skripts während der Synchronisierung (Replikationsprogrammierung mit Transact-SQL).

  • Bei Mergeveröffentlichungen mit einem Kompatibilitätsgrad von 90RTM oder höher können Artikel jederzeit gelöscht werden. Es ist jedoch eine neue Momentaufnahme erforderlich. Darüber hinaus gilt:

    • Wenn der Artikel ein übergeordneter Artikel in einer Joinfilter- oder logischen Datensatzbeziehung ist, müssen zunächst die Beziehungen gelöscht werden, was eine erneute Initialisierung erforderlich macht.

    • Wenn der Artikel den letzten parametrisierten Filter in einer Veröffentlichung hat, müssen die Abonnements erneut initialisiert werden.

  • Bei Mergeveröffentlichungen mit einem Kompatibilitätsgrad von unter 90RTM können Artikel ohne weiteres gelöscht werden, solange die Abonnements noch nicht zum ersten Mal synchronisiert wurden. Wird ein Artikel nach der Synchronisierung von Abonnements gelöscht, müssen die Abonnements gelöscht, neu erstellt und dann synchronisiert werden.

  • Bei Momentaufnahme- oder Transaktionsveröffentlichungen können Artikel ohne weiteres gelöscht werden, solange noch keine Abonnements erstellt wurden. Wird ein Artikel nach der Erstellung von Abonnements gelöscht, müssen die Abonnements gelöscht, neu erstellt und dann synchronisiert werden. Weitere Informationen zum Löschen von Abonnements finden Sie unter Abonnieren von Veröffentlichungen und sp_dropsubscription (Transact-SQL). Mit sp_dropsubscription können Sie einen einzelnen Artikel aus dem Abonnement löschen, statt das gesamte Abonnement zu löschen.

  1. Das Löschen eines Artikels aus einer Veröffentlichung umfasst das eigentliche Löschen des Artikels und das Erstellen einer neuen Momentaufnahme für die Veröffentlichung. Durch das Löschen eines Artikels wird die aktuelle Momentaufnahme ungültig, sodass eine neue Momentaufnahme erstellt werden muss.

  2. Nachdem Sie einen Artikel aus einer Veröffentlichung gelöscht haben, müssen Sie eine neue Momentaufnahme für die Veröffentlichung (sowie – bei Mergeveröffentlichungen mit parametrisierten Filtern – für alle Partitionen) erstellen.

Wie oben bereits erwähnt, müssen die Abonnements in einigen Fällen nach dem Löschen eines Artikels gelöscht und dann neu erstellt sowie synchronisiert werden. Weitere Informationen finden Sie unter Abonnieren von Veröffentlichungen und Synchronisieren von Daten.

Siehe auch

Konzepte

Veröffentlichen von Daten und Datenbankobjekten

Erneutes Initialisieren von Abonnements

Vornehmen von Schemaänderungen in Veröffentlichungsdatenbanken