MSSQL_ENG020598

Details zur Fehlermeldung

Produktname

SQL Server

Produktversion

10.0

Buildnummer des Produkts

 

Ereignis-ID

20598

Ereignisquelle

MSSQLSERVER

Komponentenbezeichnung

SQL Server Database Engine (Datenbankmodul)

Symbolischer Name

Meldungstext

Die Zeile konnte bei der Anwendung des replizierten Befehls auf dem Abonnenten nicht gefunden werden.

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-to-Peer-Replikationen verwendet werden. Informationen zu diesen Optionen finden Sie unter Aktualisierbare Abonnements für die Transaktionsreplikation und Peer-to-Peer-Transaktionsreplikation.

Benutzeraktion

So lösen Sie dieses Problem

  1. 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. Weitere Informationen finden Sie unter Überspringen von Fehlern in der Transaktionsreplikation.

  2. 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 (Dienstprogramm), um zu ermitteln, welche Zeilen sich in den Veröffentlichungs- und Abonnementdatenbanken unterscheiden. Informationen zum Verwenden dieses Dienstprogramms finden Sie unter Vorgehensweise: Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).

  3. Verbessern Sie die Zeilen auf dem Abonnenten mithilfe des Dienstprogramms tablediff oder einer anderen Methode.

  4. (Optional) Entfernen Sie den -SkipErrors-Parameter.