Freigeben über


Festlegen der Propagierungsmethode für Datenänderungen an Transaktionsartikeln

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

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.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

  • So legen Sie die Propagierungsmethode für Datenänderungen an Transaktionsartikeln fest

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Einschränkungen

  • Gehen Sie bei der Bearbeitung der bei der Replikation generierten Momentaufnahmedateien mit Bedacht vor. Sie müssen die benutzerdefinierte Logik in den benutzerdefinierten gespeicherten Prozeduren testen und unterstützen. Microsoft bietet keine Unterstützung einer benutzerdefinierten Logik.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

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 zum 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 klicken Sie dann auf Artikeleigenschaften.

  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. Klicken Sie auf OK.

  5. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> befinden, klicken Sie auf OK, um die Einstellungen 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 klicken Sie dann auf Artikeleigenschaften.

  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 bzw. DELETE-Übermittlungsformat) aus, und geben Sie dann den Namen der Prozedur ein, die in Gespeicherte Prozedur INSERT, Gespeicherter Prozedur DELETE bzw. Gespeicherte Prozedur UPDATE verwendet werden soll. Weitere Informationen zur CALL-Syntax, also der Aufrufsyntax, finden Sie im Abschnitt zur Aufrufsyntax für gespeicherte Prozeduren unter Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln.

  3. Klicken Sie auf OK.

  4. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> befinden, klicken Sie auf OK, um die Einstellungen 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, der dieser Artikel zugehörig ist, 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.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung 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.

HinweisHinweis

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

  • Führen Sie auf dem Verleger für die 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_object und 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.

    HinweisHinweis

    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

  • Führen Sie auf dem Verleger für die 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_object und 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.

    HinweisHinweis

    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_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 angegebene 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 angegebene Wert ist.

    HinweisHinweis

    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.

    HinweisHinweis

    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_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 angegebene 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 angegebene Wert ist.

    HinweisHinweis

    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.

    HinweisHinweis

    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_changearticle aus. Geben Sie @publication, @article, den Wert ins_cmd, upd_cmd oder del_cmd für @property und die entsprechende Propagierungsmethode für @value an.

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

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Konzepte

Angeben der Weitergabemethode für Änderungen bei Transaktionsartikeln

Erstellen, Ändern und Löschen von Veröffentlichungen und Artikeln (Replikation)