Festlegen der Propagierungsmethode für Datenänderungen an Transaktionsartikeln

Gilt für:SQL ServerAzure SQL Managed Instance

In diesem Thema wird beschrieben, wie Sie die Verteilungsmethode für Datenänderungen an Transaktionsartikeln in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL festlegen.

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

Voraussetzungen

Einschrä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 bietet keine Unterstützung für benutzerdefinierte Logik.

Verwendung von SQL Server Management Studio

Geben Sie die Verteilungsmethode auf der Registerkarte "Eigenschaften " des Dialogfelds "Artikeleigenschaften - <Artikel> " an, das im Assistenten für neue Publikation und im Dialogfeld "Publikationseigenschaften - <Publikation> " 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.

So geben Sie die Propagierungsmethode an

  1. Wählen Sie auf der Seite "Artikel" des Assistenten "Neue Publikation" oder im Dialogfeld "Publikationseigenschaften – <Publikation>" eine Tabelle aus, und wählen Sie dann "Artikeleigenschaften" aus.

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

  3. Geben Sie auf der Registerkarte "Eigenschaften" des Dialogfelds "Artikeleigenschaften<>" im Abschnitt "Übermittlung der Anweisung" die Verteilungsmethode für jeden Vorgang mithilfe des MENÜs "INSERT-Übermittlungsformat", "UPDATE-Übermittlungsformat" und "DELETE-Übermittlungsformat" an.

  4. Klickan Sie auf OK.

  5. Wenn Sie sich im Dialogfeld "Publikationseigenschaften <– Publikation> " befinden, wählen Sie "OK " aus, um das Dialogfeld zu speichern und zu schließen.

So generieren und verwenden Sie benutzerdefinierte Prozeduren

  1. Wählen Sie auf der Seite "Artikel" des Assistenten "Neue Publikation" oder im Dialogfeld "Publikationseigenschaften – <Publikation>" eine Tabelle aus, und wählen Sie dann "Artikeleigenschaften" aus.

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

    Wählen Sie auf der Registerkarte "Eigenschaften" des Dialogfelds "Artikel - <Artikel>" im Abschnitt "Anweisungsübermittlung" die Anrufsyntax aus dem entsprechenden Übermittlungsformatmenü (INSERT-Übermittlungsformat, UPDATE-Übermittlungsformat oder DELETE-Übermittlungsformat) aus, und geben Sie dann den Namen der Prozedur ein, die in DER gespeicherten INSERT-Prozedur, der gespeicherten Prozedur DELETE oder der gespeicherten 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. Klickan Sie auf OK.

  4. Wenn Sie sich im Dialogfeld "Publikationseigenschaften <– Publikation> " befinden, wählen Sie "OK " aus, um das Dialogfeld zu speichern und 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. Von den Prozeduren wird die von Ihnen angegebene CALL-Syntax verwendet, die bei der Replikation verwendete Standardlogik ist jedoch enthalten.

    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 im Editor oder einem anderen Text-Editor, suchen Sie den CREATE PROCEDURE-Befehl für die gespeicherte Prozedur INSERT, UPDATE oder DELETE, und bearbeiten Sie die Prozedurdefinition, um jegliche benutzerdefinierte Logik für das Propagieren 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 auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus. 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 einen Sql-Wert für einen der oben genannten Parameter angeben, werden Befehle dieses Typs als entsprechender Transact-SQL-Befehl in den Abonnenten repliziert.

    Weitere Informationen finden Sie unter Definieren eines Artikels.

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

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus. 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 auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus. 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 von CALL sp_MSins_article_name an, wobei article_name der für @article angegebene Wert ist.

    • @del_cmd – Geben Sie einen Wert von CALL sp_MSdel_article_name oder XCALL-sp_MSdel_ an article_name wobei article_name der für @article angegebene Wert ist.

    • @upd_cmd – Geben Sie einen Wert von SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL-sp_MSupd_article_name oder MCALL-sp_MSupd_ an article_name wobei article_name der für @article angegebene 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 die gespeicherte Prozedur INSERT, UPDATE oder DELETE, und bearbeiten Sie die Prozedurdefinition, um eine benutzerdefinierte Logik für die Propagierung von Datenänderungen bereitzustellen. 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 auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus. 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 von CALL sp_MSins_article_name an, wobei article_name der für @article angegebene Wert ist.

    • @del_cmd – Geben Sie einen Wert von CALL sp_MSdel_article_name oder XCALL-sp_MSdel_ an article_name wobei article_name der für @article angegebene Wert ist.

    • @upd_cmd – Geben Sie einen Wert von SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name, MCALL sp_MSupd_article_name an, wobei article_name der für @article angegebene 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 auf dem Verleger für die Veröffentlichungsdatenbank die ALTER PROCEDURE -Anweisung, um sp_scriptpublicationcustomprocs so zu bearbeiten, dass ein CREATE PROCEDURE -Skript für die benutzerdefinierten, gespeicherten Prozeduren INSERT, UPDATE und DELETE zurückgegeben wird. Weitere Informationen finden Sie unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

So ändern Sie die Methode zur Weitergabe von Änderungen an einen vorhandenen Artikel

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changearticleaus. 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.

Siehe auch