UPDATE-Anweisungen können als DELETE/INSERT-Paare repliziert werden

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 238254 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Wenn jede Spalte, die Teil einer unique-Einschränkung ist wird aktualisiert und dann SQL Server implementiert das Update als "verzögerte Update", d. als ein Paar DELETE h. / INSERT -Operationen. Dieser "verzögerte Aktualisierung" bewirkt, dass die Replikation auf ein Paar von DELETE senden / INSERT -Anweisungen an die Abonnenten. Es gibt auch andere Situationen, die eine verzögerte Aktualisierung verursachen können. Daher jede Geschäftslogik angezeigt, die Sie in der UPDATE -Triggern oder benutzerdefinierten gespeicherten Prozeduren auf dem Abonnenten implementieren auch in der DELETE berücksichtigt werden sollen / INSERT -Triggern oder benutzerdefinierten gespeicherten Prozeduren.

Weitere Informationen

Das Standardverhalten bei der Transaktionsreplikation ist die Verwendung INSERT- , Update- und DELETE benutzerdefinierte gespeicherte Prozeduren, um Änderungen an den Abonnenten anzuwenden.

INSERT -Anweisungen auf dem Verleger vorgenommen wurden, werden auf Abonnenten durch eine INSERT gespeicherten Prozeduraufruf angewendet. Ebenso wird eine DELETE -Anweisung durch Aufruf von DELETE gespeicherten Prozedur angewendet.

Jedoch gespeichert, wenn eine UPDATE -Anweisung als "verzögerte Update", den Protokolllese-Agent stellen ein Paar von DELETE ausgeführt wird / INSERT gespeicherte Prozedur aufruft, in der Distribution-Datenbank auf den Abonnenten statt ein Update angewendet werden Prozeduraufruf. Genommen Sie an, Sie haben eine publizierenden Tabelle mit dem Namen TABLE1, und diese drei Spalten:
  • col1 int
  • col2 int
  • Col3 varchar(30).
Die ausschließlich eindeutige Einschränkung für TABLE1 ist auf col1 über eine primary Key-Einschränkung definiert. Wird davon ausgegangen, dass ein Datensatz verfügen (1,1, "Hamburg").

Wenn Sie diesen Code ausführen:
UPDATE TABLE1 set col1 = 3 where col2 = 'Dallas'
				
die UPDATE -Anweisung wird von SQL Server implementiert, als ein Paar DELETE / INSERT -Anweisungen seit dem Aktualisieren col1, über einen eindeutigen Index definiert. Daher setzt der Protokolllese ein Paar von DELETE / INSERT Aufrufe in die Verteilungsdatenbank. Dies kann jede Geschäftslogik auswirken, die in den Triggern oder benutzerdefinierten gespeicherten Prozeduren auf dem Abonnenten vorhanden ist. Sie sollten die zusätzliche Geschäftslogik in DELETE und INSERT -Trigger oder gespeicherte Prozeduren behandelt diese Situation integrieren.

Wenn Sie die einzelnen Logik verwenden möchten, und alle UPDATE -Befehle als DELETE repliziert werden sollen / INSERT -Paare, Sie können ein Ablaufverfolgungsflag wie in diesem Microsoft Knowledge Base beschrieben:
160181Info: Ablaufverfolgung Kennzeichnung UPDATE als DELETE/INSERT Paar replizieren
Außerdem wird wenn Sie einen horizontalen Filter in Ihrer Publikation verwenden und die aktualisierte Zeile eine Filterbedingung nicht erfüllen, nur ein DELETE- Aufruf einer Prozedur an die Abonnenten gesendet. Wenn die aktualisierte Zeile nicht die Filterbedingung erfüllt zuvor jedoch nach der Aktualisierung die Bedingung erfüllt, wird nur der INSERT Prozeduraufruf über den Replikationsprozess gesendet.

Wird vorausgesetzt, im vorhergehenden Beispiel, dass, auch einen horizontalen Filter auf TABLE1 definiert: wo col2 = "Hamburg". Wenn Sie diesen Code ausführen:
UPDATE table1 set col2 = 'New York' where col1 = 3
				
den Protokolllese-Agent nur stellen einen DELETE Prozeduraufruf auf die Abonnenten angewendet werden gespeicherten, da die aktualisierte Zeile die horizontalen Filterkriterien nicht erfüllt.

Wenn Sie diesen Code ausführen im Moment:
UPDATE table1 set col2 = 'Dallas' where col1 = 3
				
der Protokolllese generiert nur Prozeduraufruf, der INSERT gespeichert werden, da die Zeile nicht zuvor die Filterbedingung erfüllt.

Obwohl eine UPDATE -Operation auf dem Verleger ausgeführt wurde, werden nur die entsprechenden Befehle auf dem Abonnenten angewendet.

Informationsquellen

Finden Sie für SQL Server 2000 Service Pack 1 oder höher im folgenden Artikel der Microsoft Knowledge Base:
302341Info: Neue Ablaufverfolgung kennzeichnen Singleton-Update für die Transaktionsreplikation aktivieren

Eigenschaften

Artikel-ID: 238254 - Geändert am: Montag, 12. Mai 2008 - Version: 6.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Keywords: 
kbmt kbinfo KB238254 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 238254
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com