Vorgehensweise: Anzeigen von Konfliktinformationen zu Mergeveröffentlichungen (Replikationsprogrammierung mit Transact-SQL)
Wenn Konflikte während einer Mergereplikations aufgelöst werden, werden die Daten aus der verlierenden Zeile in eine Konflikttabelle geschrieben. Diese Konfliktdaten können programmgesteuert mithilfe gespeicherter Replikationsprozeduren angezeigt werden. Weitere Informationen finden Sie unter Erweiterte Konflikterkennung und -lösung bei der Mergereplikation.
So zeigen Sie Konfliktinformationen und Daten zu den verlierenden Zeilen für alle Typen von Konflikten an
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergepublication aus. Beachten Sie die Werte der folgenden Spalten im Resultset:
centralized_conflicts – 1 zeigt an, dass Konfliktzeilen auf dem Verleger gespeichert werden, und 0 zeigt an, dass Konfliktzeilen nicht auf dem Verleger gespeichert werden.
decentralized_conflicts – 1 zeigt an, dass Konfliktzeilen auf dem Abonnenten gespeichert werden, und 0 zeigt an, dass Konfliktzeilen nicht auf dem Abonnenten gespeichert werden.
Hinweis Das Konfliktprotokollierungsverhalten einer Mergeveröffentlichung wird mithilfe des @ conflict_logging-Parameters von sp_addmergepublication festgelegt. Der @centralized_conflicts-Parameter wurde als veraltet markiert.
In der folgenden Tabelle werden die Werte dieser Spalten in Abhängigkeit von dem für @conflict_logging angegebenen Wert beschrieben.
@conflict_logging-Wert
centralized_conflicts
decentralized_conflicts
publisher
1
0
subscriber
0
1
both
1
1
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank oder auf dem Abonnementen für die Abonnementdatenbank sp_helpmergepublication aus. Geben Sie einen Wert für @publication an, um nur Konfliktinformationen zu Artikeln zurückzugeben, die zu einer bestimmten Veröffentlichung gehören. Damit werden Konflikttabelleninformationen für Artikel mit Konflikten zurückgegeben. Notieren Sie den Wert von conflict_table bei allen Artikeln, die von Interesse sind. Wenn conflict_table für einen Artikel den Wert NULL hat, werden nur die Konflikte gelöscht, die in diesem Artikel aufgetreten sind.
(Optional) Überprüfen Sie die Konfliktzeilen für die Artikel, die von Interesse sind. Wählen Sie abhängig von den Werten von centralized_conflicts und decentralized_conflicts aus Schritt 1 eine der folgenden Vorgehensweisen:
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergeconflictrows aus. Geben Sie für den Artikel (aus Schritt 1) eine Konflikttabelle für @conflict_table an. (Optional) Geben Sie den Wert @publication an, um die Rückgabe von Konfliktinformationen auf eine bestimmte Veröffentlichung zu beschränken. Damit werden Zeilendaten und andere Informationen für die verlierende Zeile zurückgegeben.
Führen Sie auf dem Abonnenten für die Abonnementdatenbank sp_helpmergeconflictrows aus. Geben Sie für den Artikel (aus Schritt 1) eine Konflikttabelle für @conflict_table an. Damit werden Zeilendaten und andere Informationen für die verlierende Zeile zurückgegeben.
So zeigen Sie nur Informationen zu Konflikten an, bei denen eine Löschung fehlschlug
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergepublication aus. Beachten Sie die Werte der folgenden Spalten im Resultset:
centralized_conflicts – 1 zeigt an, dass Konfliktzeilen auf dem Verleger gespeichert werden, und 0 zeigt an, dass Konfliktzeilen nicht auf dem Verleger gespeichert werden.
decentralized_conflicts – 1 zeigt an, dass Konfliktzeilen auf dem Abonnenten gespeichert werden, und 0 zeigt an, dass Konfliktzeilen nicht auf dem Abonnenten gespeichert werden.
Hinweis Das Konfliktprotokollierungsverhalten einer Mergeveröffentlichung wird mithilfe des @conflict_logging-Parameters sp_addmergepublication festgelegt. Der @centralized_conflicts-Parameter wurde als veraltet markiert.
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank oder auf dem Abonnementen für die Abonnementdatenbank sp_helpmergepublication aus. Geben Sie einen Wert für @publication an, um nur Konflikttabelleninformationen zu Artikeln zurückzugeben, die zu einer bestimmten Veröffentlichung gehören. Damit werden Konflikttabelleninformationen für Artikel mit Konflikten zurückgegeben. Notieren Sie den Wert von source_object bei allen Artikeln, die von Interesse sind. Wenn conflict_table für einen Artikel den Wert NULL hat, werden nur die Konflikte gelöscht, die in diesem Artikel aufgetreten sind.
(Optional) Überprüfen Sie die Konfliktinformationen für Löschkonflikte. Wählen Sie abhängig von den Werten von centralized_conflicts und decentralized_conflicts aus Schritt 1 eine der folgenden Vorgehensweisen:
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergedeleteconflictrows aus. Geben Sie den Namen der Quelltabelle (aus Schritt 1) an, in der der Konflikt bezüglich @source_object aufgetreten ist. (Optional) Geben Sie den Wert @publication an, um die Rückgabe von Konfliktinformationen auf eine bestimmte Veröffentlichung zu beschränken. Damit werden auf dem Verleger gespeicherte Informationen zu Löschkonflikten zurückgegeben.
Führen Sie auf dem Abonnenten für die Abonnementdatenbank sp_helpmergedeleteconflictrows aus. Geben Sie den Namen der Quelltabelle (aus Schritt 1) an, in der der Konflikt bezüglich @source_object aufgetreten ist. (Optional) Geben Sie den Wert @publication an, um die Rückgabe von Konfliktinformationen auf eine bestimmte Veröffentlichung zu beschränken. Damit werden auf dem Abonnenten gespeicherte Informationen zu Löschkonflikten zurückgegeben.