Festlegen der Propagierungsmethode für Datenänderungen an Transaktionsartikeln

Gilt für:SQL ServerAzure SQL Managed Instance

In diesem Thema wird beschrieben, wie die Propagierungsmethode für Datenänderungen an Transaktionsartikeln in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL festgelegt werden kann.

Standardmäßig überträgt die Transaktionsreplikation Änderungen an Abonnenten mithilfe eines Satzes gespeicherter Prozeduren für jeden Artikel. Sie können diese Prozeduren durch benutzerdefinierte Prozeduren ersetzen. Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

Bevor Sie beginnen

Einschränkungen und Beschränkungen

  • Gehen Sie bei der Bearbeitung der bei der Replikation generierten Momentaufnahmedateien mit Bedacht vor. Testen und unterstützen Sie benutzerdefinierte Logik in den benutzerdefinierten gespeicherten Prozeduren. Microsoft stellt keine Unterstützung für benutzerdefinierte Logik bereit.

Verwendung von SQL Server Management Studio

Legen Sie die Propagierungsmethode auf der Registerkarte Eigenschaften des Dialogfelds Artikeleigenschaften – <Artikel> fest, das im Assistenten für neue Veröffentlichungen und im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> verfügbar ist. Weitere Informationen zum Verwenden des Assistenten sowie Zugriff auf das Dialogfeld finden Sie unter Erstellen einer Veröffentlichung und Anzeigen und Ändern von Veröffentlichungseigenschaften.

Die Ausbreitungsmethode angeben

  1. Wählen Sie im Assistenten für neue Veröffentlichung auf der Seite Artikel bzw. im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> eine Tabelle aus, und wählen Sie anschließend Artikeleigenschaften aus.

  2. Klicken Sie auf die Option Eigenschaften des hervorgehobenen Tabelle-Artikels festlegen.

  3. Auf der Registerkarte Eigenschaften des Dialogfelds Artikeleigenschaften - <Artikel> geben Sie im Abschnitt Zustellung von Erklärungen die Weiterleitungsmethode für jeden Vorgang mithilfe der Menüs INSERT Zustellungsformat, UPDATE Zustellungsformat und DELETE Zustellungsformat an.

  4. Wählen Sie OK aus.

  5. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> befinden, wählen Sie OK aus, um zu speichern und das Dialogfeld zu schließen.

So generieren und verwenden Sie benutzerdefinierte Prozeduren

  1. Wählen Sie im Assistenten für neue Veröffentlichung auf der Seite Artikel bzw. im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> eine Tabelle aus, und wählen Sie anschließend Artikeleigenschaften aus.

  2. Klicken Sie auf die Option Eigenschaften des hervorgehobenen Tabelle-Artikels festlegen.

    Wählen Sie im Dialogfeld Artikeleigenschaften – <Artikel> auf der Registerkarte Eigenschaften im Abschnitt Anweisungsübermittlung die CALL-Syntax im Menü des entsprechenden Übermittlungsformats (INSERTINSERT-Übermittlungsformat, UPDATEUPDATE-Übermittlungsformat oder DELETEDELETE-Übermittlungsformat) aus, und geben Sie dann den Namen der Prozedur ein, die in INSERTgespeicherter Prozedur INSERT, in DELETEgespeicherter Prozedur DELETE oder UPDATEin gespeicherter Prozedur UPDATE verwendet werden soll. Weitere Informationen zur CALL-Syntax finden Sie im Abschnitt „Aufrufsyntax für gespeicherte Prozeduren“ in Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

  3. Wählen Sie OK aus.

  4. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> befinden, wählen Sie OK aus, um zu speichern und das Dialogfeld zu schließen.

  5. Wenn die Momentaufnahme für die Veröffentlichung generiert wird, enthält er die Prozedur, die Sie im vorherigen Schritt angegeben haben. Die Prozeduren verwenden die von Ihnen angegebene CALL-Syntax, enthalten aber die von der Replikation verwendete Standardlogik.

    Navigieren Sie nach der Momentaufnahmegenerierung zu dem Momentaufnahmeordner der Veröffentlichung, zu der dieser Artikel gehört, und suchen Sie die .sch -Datei, die denselben Namen wie der Artikel trägt. Öffnen Sie diese Datei mit Notepad oder einem anderen Texteditor, suchen Sie den CREATE PROCEDURE-Befehl für die gespeicherten Prozeduren zum Einfügen, Aktualisieren oder Löschen, und bearbeiten Sie die Prozedurdefinition, um benutzerdefinierte Logik für die Weitergabe von Datenänderungen bereitzustellen. Wenn die Momentaufnahme erneut generiert wird, muss die benutzerdefinierte Prozedur ebenfalls erneut erstellt werden.

Verwenden von Transact-SQL

Die Transaktionsreplikation ermöglicht es Ihnen zu steuern, wie Änderungen vom Verleger an die Abonnenten weitergegeben (propagiert) werden. Diese Propagierungsmethode kann bei der Erstellung eines Artikels programmgesteuert festgelegt und später anhand gespeicherter Replikationsprozeduren geändert werden.

Hinweis

Sie können für jeden DML-Vorgangstyp (Data Manipulation Language, Datenbearbeitungssprache), der auf einer Zeile veröffentlichter Daten vorkommt (Einfügen, Aktualisieren oder Löschen), eine andere Propagierungsmethode angeben.

Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

So erstellen Sie einen Artikel, der Transact-SQL-Befehle verwendet, um Datenänderungen weiterzugeben

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_addarticle aus. Geben Sie den Namen der Veröffentlichung, zu der der Artikel gehört, für @publication, den Namen des Artikels für @article, das Datenbankobjekt, das veröffentlicht wird, für @source_objectund den Wert SQL für wenigstens einen der folgenden Parameter an:

    • @ins_cmd – steuert die Replikation von INSERT Befehlen.

    • @upd_cmd – steuert die Replikation von UPDATE Befehlen.

    • @del_cmd – steuert die Replikation von DELETE Befehlen.

    Hinweis

    Wenn Sie den Wert SQL für einen der obigen Parameter angeben, werden die Befehle des betreffenden Typs auf den Abonnenten als entsprechende Transact-SQL-Befehle repliziert.

    Weitere Informationen finden Sie unter Definieren eines Artikels.

So erstellen Sie einen Artikel, der keine Datenänderungen weitergibt

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_addarticle aus. Geben Sie den Namen der Veröffentlichung, zu der der Artikel gehört, für @publication, den Namen des Artikels für @article, das Datenbankobjekt, das veröffentlicht wird, für @source_objectund den Wert NONE für wenigstens einen der folgenden Parameter an:

    • @ins_cmd – steuert die Replikation von INSERT Befehlen.

    • @upd_cmd – steuert die Replikation von UPDATE Befehlen.

    • @del_cmd – steuert die Replikation von DELETE Befehlen.

    Hinweis

    Wenn Sie den Wert NONE für einen der obigen Parameter angeben, werden die Befehle des betreffenden Typs auf den Abonnenten nicht repliziert.

    Weitere Informationen finden Sie unter Definieren eines Artikels.

So erstellen Sie einen Artikel mit benutzerdefinierten gespeicherten Prozeduren

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_addarticle aus. Geben Sie den Namen der Veröffentlichung, zu der der Artikel gehört, für @publication, den Namen des Artikels für @article, das zu veröffentlichende Datenbankobjekt für @source_object, einen Wert für die @schema_option -Bitmaske, der den Wert 0x02 enthält (aktiviert die automatische Erstellung benutzerdefinierter gespeicherter Prozeduren), und wenigstens einen der folgenden Parameter an:

    • @ins_cmd: Geben Sie einen Wert für CALL sp_MSins_article_name an, wobei article_name der für @article festgelegte Wert ist.

    • @del_cmd: Geben Sie einen Wert für CALL sp_MSdel_article_name oder XCALL sp_MSdel_article_name an, wobei article_name der für @article festgelegte Wert ist.

    • @upd_cmd: Geben Sie einen Wert für SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name oder MCALL sp_MSupd_article_name an, wobei article_name der für @article festgelegte Wert ist.

    Hinweis

    Für jeden der obigen Befehlsparameter gilt: Sie können einen selbst gewählten Namen für die gespeicherten Prozeduren angeben, die von der Replikation generiert werden.

    Hinweis

    Weitere Informationen über die CALL, SCALL, XCALL und MCALL-Syntax finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

    Weitere Informationen finden Sie unter Definieren eines Artikels.

  2. Navigieren Sie nach der Momentaufnahmegenerierung zu dem Momentaufnahmeordner der Veröffentlichung, zu der dieser Artikel gehört, und suchen Sie die .sch -Datei, die denselben Namen wie der Artikel trägt. Öffnen Sie diese Datei mit Notepad.exe, suchen Sie den CREATE PROCEDURE Befehl für gespeicherte Prozeduren zum Einfügen, Aktualisieren oder Löschen gespeicherter Prozeduren, und bearbeiten Sie die Prozedurdefinition, um eine benutzerdefinierte Logik für die Weitergabe von Datenänderungen zu liefern. Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

So erstellen Sie einen Artikel mit benutzerdefinierter Skriptprozedur in den benutzerdefinierten gespeicherten Prozeduren, um Datenänderungen weiterzugeben

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_addarticle aus. Geben Sie den Namen der Veröffentlichung, zu der der Artikel gehört, für @publication, den Namen des Artikels für @article, das zu veröffentlichende Datenbankobjekt für @source_object, einen Wert für die @schema_option -Bitmaske, der den Wert 0x02 enthält (aktiviert die automatische Erstellung benutzerdefinierter gespeicherter Prozeduren), und wenigstens einen der folgenden Parameter an:

    • @ins_cmd: Geben Sie einen Wert für CALL sp_MSins_article_name an, wobei article_name der für @article festgelegte Wert ist.

    • @del_cmd: Geben Sie einen Wert für CALL sp_MSdel_article_name oder XCALL sp_MSdel_article_name an, wobei article_name der für @article festgelegte Wert ist.

    • @upd_cmd: Geben Sie einen Wert für SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name oder MCALL sp_MSupd_article_name an, wobei article_name der für @article festgelegte Wert ist.

    Hinweis

    Für jeden der obigen Befehlsparameter gilt: Sie können einen selbst gewählten Namen für die gespeicherten Prozeduren angeben, die von der Replikation generiert werden.

    Hinweis

    Weitere Informationen über die CALL, SCALL, XCALL und MCALL-Syntax finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

    Weitere Informationen finden Sie unter Definieren eines Artikels.

  2. Verwenden Sie bei der Publisher in der Publikationsdatenbank die ALTER PROCEDURE Anweisung, um sp_scriptpublicationcustomprocs zu bearbeiten, sodass ein CREATE PROCEDURE-Skript für das Einfügen, Aktualisieren und Löschen von benutzerdefinierten gespeicherten Prozeduren zurückgegeben wird. Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

So ändern Sie die Methode zum Übertragen von Änderungen für einen vorhandenen Artikel

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_changearticle aus. Geben Sie @publication, @article, den Wert ins_cmd, upd_cmdoder del_cmd für @propertyund die entsprechende Propagierungsmethode für @valuean.

  2. Wiederholen Sie Schritt 1 für jede Propagierungsmethode, die geändert werden soll.