Festlegen der Propagierungsmethode für Datenänderungen an Transaktionsartikeln

Gilt für: SQL Server Azure 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 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 stellt keine Unterstützung für benutzerdefinierte Logik bereit.

Verwendung von SQL Server Management Studio

Geben Sie die Propagierungsmethode im Dialogfeld Artikeleigenschaften – <Artikel> auf der Registerkarte Eigenschaften an. Diese Registerkarte steht sowohl im Assistenten für neue Veröffentlichung als auch im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> zur Verfügung. 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 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. Geben Sie im Dialogfeld Artikeleigenschaften – <Artikel> auf der Registerkarte Eigenschaften im Abschnitt Anweisungsübermittlung die Propagierungsmethode für die einzelnen Vorgänge an. Verwenden Sie hierzu die Menüs INSERT-Übermittlungsformat, UPDATE-Übermittlungsformat und DELETE-Übermittlungsformat.

  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 (INSERT-Übermittlungsformat, UPDATE-Übermittlungsformat oder DELETE-Übermittlungsformat) aus, und geben Sie dann den Namen der Prozedur ein, die in gespeicherter Prozedur INSERT, in gespeicherter Prozedur DELETE oder in 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. 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 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 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 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 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 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 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.