MSSQL_ENG020598
Meldungsdetails
Produktname |
SQL Server |
Produktversion |
10.0 |
Buildnummer des Produkts |
|
Ereignis-ID |
20598 |
Ereignisquelle |
MSSQLSERVER |
Komponente |
SQL Server Database Engine (Datenbankmodul) |
Symbolischer Name |
|
Meldungstext |
Die Zeile wurde bei der Anwendung des replizierten Befehls auf dem Abonnenten nicht gefunden. |
Erklärung
Dieser Fehler wird bei der Transaktionsreplikation ausgegeben, wenn der Verteilungs-Agent versucht, eine Zeile auf dem Abonnenten zu aktualisieren, die Zeile jedoch gelöscht bzw. der Primärschlüssel geändert wurde. Standardmäßig sollten Abonnenten von Transaktionsreplikationen schreibgeschützt sein, da Änderungen nicht an den Verleger zurückgegeben werden. Bei der Transaktionsreplikation sollten Benutzeränderungen nur am Abonnenten vorgenommen werden, wenn aktualisierbare Abonnements oder Peer-zu-Peer-Replikationen verwendet werden. Informationen zu diesen Optionen finden Sie unter Aktualisierbare Abonnements für die Transaktionsreplikation und Peer-zu-Peer-Transaktionsreplikation.
Benutzeraktion
So lösen Sie dieses Problem
Wenn die Replikation fortgesetzt werden muss, während Sie den Ursprung des Fehlers ermitteln, geben Sie den -SkipErrors 20598-Parameter für den Verteilungs-Agent an. Hierdurch kann der Agent Änderungen auslassen, die den Fehler 20598 verursachen, und dennoch zulassen, dass andere Änderungen repliziert werden.
Stellen Sie fest, welche Zeilen auf dem Abonnenten gelöscht wurden bzw. einen anderen Primärschlüssel aufweisen als die Zeilen auf dem Verleger. Verwenden Sie tablediff (Hilfsprogramm), um zu ermitteln, welche Zeilen sich in den Veröffentlichungs- und Abonnementdatenbanken unterscheiden. Informationen zum Verwenden dieses Hilfsprogramms finden Sie unter Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).
Verbessern Sie die Zeilen auf dem Abonnenten mithilfe des Hilfsprogramms tablediff oder einer anderen Methode.
(Optional) Entfernen Sie den -SkipErrors-Parameter.