Erweiterte Konflikte bei der Mergereplikation – COM-basierte Konfliktlöser

Gilt für:SQL Server

Alle COM-basierten Resolver, die mit SQL Server bereitgestellt werden, behandeln Updatekonflikte, und wo angegeben, behandeln sie auch Einfüge- und Löschkonflikte. Sie alle behandeln das Protokollieren auf Spaltenebene und größtenteils auch das Protokollieren auf Zeilenebene. Diese und alle anderen COM-basierten Konfliktlöser deklarieren die Konflikttypen, die sie behandeln können; der Merge-Agent verwendet den Standardkonfliktlöser für alle anderen Konflikttypen.

Die Resolver werden während des Installationsprozesses für SQL Server installiert. Führen Sie die gespeicherte Prozedur sp_enumcustomresolvers aus, um alle auf dem Computer registrierten Konfliktlöser anzuzeigen. Durch das Ausführen der Prozedur wird die Beschreibung und der global eindeutige Bezeichner (Globally Unique Identifier, GUID) für jeden Konfliktlöser in einem separaten Resultset angezeigt.

Informationen zum Angeben eines Konfliktlösers finden Sie unter Specify a Merge Article Resolver.

In der folgenden Tabelle werden die Attribute der bestimmten Konfliktlöser beschrieben.

Name Erforderliche Eingabe Beschreibung Kommentare
Microsoft SQL Server-Konfliktlöser Zusatz Name der zu summierenden Spalte. Sie muss einen arithmetischen Datentyp (wie z. B. int, smallint, numericusw.) aufweisen. Der Gewinner des Konflikts wird anhand des priority-Wertes ermittelt. Angegebene Spaltenwerte werden auf die Summe der Quelle und der Zielspaltenwerte festgelegt. Wenn ein Wert auf NULL festgelegt ist, werden sie auf den Wert der anderen Spalte festgelegt. Unterstützt Updatekonflikte, nur Spaltenprotokollierung.
Microsoft SQL Server-Konfliktlöser Mittelwerterstellung Der Name der Spalte, deren Mittelwert ermittelt werden soll. Sie muss einen arithmetischen Datentyp (wie z. B. int, smallint, numericusw.) aufweisen. Der Gewinner des Konflikts wird anhand des priority-Wertes ermittelt. Resultierende Spaltenwerte werden auf den Mittelwert der Quelle und der Zielspaltenwerte festgelegt. Wenn ein Wert auf NULL festgelegt ist, werden sie auf den Wert der anderen Spalte festgelegt. Unterstützt Updatekonflikte, nur Spaltenprotokollierung.
Microsoft SQL Server-Konfliktlöser DATETIME (früher gewinnt) Name der Spalte, die zum Bestimmen des Konfliktgewinners verwendet wird. Sie muss einen datetime -Datentyp aufweisen. Die Spalte mit dem früheren datetime -Wert bestimmt den Konfliktgewinner. Wenn für einen Wert NULL festgelegt ist, ist die Zeile mit dem anderen Wert der Gewinner. Unterstützt Updatekonflikte, Zeilen- und Spaltenprotokollierung. Die Spaltenwerte werden direkt verglichen; eine Anpassung für verschiedene Zeitzonen wird nicht vorgenommen.
Microsoft SQL Server-Konfliktlöser DATETIME (später gewinnt) Name der Spalte, die zum Bestimmen des Konfliktgewinners verwendet wird. Sie muss einen datetime -Datentyp aufweisen. Die Spalte mit dem späteren datetime -Wert bestimmt den Konfliktgewinner. Wenn für einen Wert NULL festgelegt ist, ist die Zeile mit dem anderen Wert der Gewinner. Unterstützt Updatekonflikte, Zeilen- und Spaltenprotokollierung.
Microsoft SQL Server-Konfliktlöser Maximum Name der Spalte, die zum Bestimmen des Konfliktgewinners verwendet wird. Sie muss einen arithmetischen Datentyp (wie z. B. int, smallint, numericusw.) aufweisen. Die Spalte mit dem höheren nummerischen Wert bestimmt den Konfliktgewinner. Wenn für einen Wert NULL festgelegt ist, ist die Zeile mit dem anderen Wert der Gewinner. Unterstützt Zeilen- und Spaltenprotokollierung.
Microsoft SQL Server-Konfliktlöser Minimum Name der Spalte, die zum Bestimmen des Konfliktgewinners verwendet wird. Sie muss einen arithmetischen Datentyp (wie z. B. int, smallint, numericusw.) aufweisen. Die Spalte mit dem niedrigeren nummerischen Wert bestimmt den Konfliktgewinner. Wenn für einen Wert NULL festgelegt ist, ist die Zeile mit dem anderen Wert der Gewinner. Unterstützt Updatekonflikte, Zeilen- und Spaltenprotokollierung.
Microsoft SQL Server Merge Text Conflict Resolver Name der Textspalte und Trennzeichen, z. B. @resolver_info = '[col1][===]'. Der Gewinner des Konflikts wird anhand des priority-Wertes ermittelt. Konflikt verursachende Textspalten werden auf einen zusammengeführten Wert festgelegt, der aus einem gemeinsamen Präfix gefolgt von einem eindeutigen Teil des Verlegers, dem Trennzeichen und einem eindeutigen Teil des Abonnenten besteht. Unterstützt Updatekonflikte, nur Spaltenprotokollierung.
Microsoft SQL Server-Konfliktlöser Abonnent gewinnt immer Keine Eingaben. Der Abonnent ist der Gewinner, unabhängig davon, ob er Quelle oder Ziel ist. Unterstützt alle Konflikttypen.
Microsoft SQL Server-Konfliktlöser Priorität Name der Spalte, die zum Bestimmen des Konfliktgewinners verwendet wird. Sie muss einen arithmetischen Datentyp (wie z. B. int, smallint, numericusw.) aufweisen. Die Spalte mit dem höheren nummerischen Wert bestimmt den Konfliktgewinner. Wenn für einen Wert NULL festgelegt ist, ist die Zeile mit dem anderen Wert der Gewinner. Unterstützt Updatekonflikte, Zeilen- und Spaltenprotokollierung.
Microsoft SQL Server-Konfliktlöser Nur Upload Keine Eingaben. Für den Verleger hochgeladene Änderungen werden akzeptiert; Änderungen werden nicht auf den Abonnenten heruntergeladen. Unterstützt alle Konflikttypen.
Microsoft SQL Server-Konfliktlöser Nur Download Keine Eingaben. Für den Verleger hochgeladene Änderungen werden abgelehnt; Änderungen werden auf den Abonnenten heruntergeladen. Unterstützt alle Konflikttypen.
Microsoft SQL Server-Konfliktlöser für gespeicherte Prozeduren Name der gespeicherten Prozedur, die der Konfliktlöser zur Problembehandlung aufrufen soll. Die Konfliktlösung hängt von der Logik in der von Ihnen angegebenen Prozedur ab. Updatekonflikte werden unterstützt. Weitere Informationen finden Sie unter Implementieren eines benutzerdefinierten Konfliktlösers für einen Mergeartikel

Weitere Informationen

Erweiterte Konflikterkennung und -lösung der Mergereplikation
sp_enumcustomresolvers (Transact-SQL)