Freigeben über


Vorgehensweise: Festlegen der Propagierungsmethode für Datenänderungen an Transaktionsartikeln (Replikationsprogrammierung mit Transact-SQL)

Standardmäßig generiert die Replikation die gespeicherten Prozeduren, die verwendet werden, um Änderungen an Abonnenten weiterzugeben, automatisch. 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 Vorgehensweise: Definieren eines Artikels (Replikationsprogrammierung mit Transact-SQL).

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 Vorgehensweise: Definieren eines Artikels (Replikationsprogrammierung mit Transact-SQL).

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 den Wert CALL sp_MSins_article_name an. Dabei ist article_name der für @article angegebene Wert.

    • @del_cmd - Geben Sie den Wert CALL sp_MSdel_article_name oder XCALL sp_MSdel_article_name an. Dabei ist article_name der für @article angegebene Wert.

    • @upd_cmd - Geben Sie den Wert SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name oder MCALL sp_MSupd_article_name an. Dabei ist article_name der für @article angegebene Wert.

    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 Vorgehensweise: Definieren eines Artikels (Replikationsprogrammierung mit Transact-SQL).

  2. Navigieren Sie nach der Snapshotgenerierung zu dem Snapshotordner 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.

    VorsichtshinweisVorsicht

    Gehen Sie bei der Bearbeitung der bei der Replikation generierten Snapshotdateien mit Bedacht vor. Die benutzerdefinierte Logik muss in den benutzerdefinierten gespeicherten Prozeduren getestet und von ihnen unterstützt werden. Microsoft unterstützt die benutzerdefinierte Logik nicht.

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 den Wert CALL sp_MSins_article_name an. Dabei ist article_name der für @article angegebene Wert.

    • @del_cmd - Geben Sie den Wert CALL sp_MSdel_article_name oder XCALL sp_MSdel_article_name an. Dabei ist article_name der für @article angegebene Wert.

    • @upd_cmd - Geben Sie den Wert SCALL sp_MSupd_article_name, CALL sp_MSupd_article_name, XCALL sp_MSupd_article_name oder MCALL sp_MSupd_article_name an. Dabei ist article_name der für @article angegebene Wert.

    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 Vorgehensweise: Definieren eines Artikels (Replikationsprogrammierung mit Transact-SQL).

  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.

    VorsichtshinweisVorsicht

    Gehen Sie bei der Bearbeitung von sp_scriptpublicationcustomprocs mit Bedacht vor. Die benutzerdefinierte Logik muss in den benutzerdefinierten gespeicherten Prozeduren getestet und von ihnen unterstützt werden. Microsoft unterstützt keine benutzerdefinierte Logik und keine Änderungen an systemgespeicherten Prozeduren.

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.