MSSQL_ENG002627

Meldungsdetails

Produktname

SQL Server

Produktversion

10.50

Buildnummer des Produkts

 

Ereignis-ID

2627

Ereignisquelle

MSSQLSERVER

Komponentenbezeichnung

SQL Server Database Engine (Datenbankmodul)

Symbolischer Name

N/V

Meldungstext

Verletzung der %ls-Einschränkung '%.*ls'. Ein doppelter Schlüssel kann in das '%.*ls'-Objekt nicht eingefügt werden.

Erklärung

Das ist ein allgemeiner Fehler, der unabhängig davon ausgelöst werden kann, ob eine Datenbank repliziert wird. Bei replizierten Datenbanken wird der Fehler in der Regel ausgelöst, weil Primärschlüssel in der Topologie nicht richtig verwaltet wurden. In einer verteilten Umgebung muss unbedingt sichergestellt werden, dass in mehreren Knoten nicht der gleiche Wert in eine Primärschlüsselspalte oder eine andere eindeutige Spalte eingefügt wird. Die folgenden Ursachen können zugrunde liegen:

  • Einfügungen und Aktualisierungen an einer Zeile finden in mehreren Knoten statt. Die Mergereplikation und aktualisierbare Abonnements für Transaktionsreplikationen stellen jeweils eine Konflikterkennung und -lösung bereit. Dennoch ist es besser, eine bestimmte Zeile nur in einem Knoten einzufügen oder zu aktualisieren. Die Peer-zu-Peer-Transaktionsreplikation stellt keine Konflikterkennung und -lösung bereit. Einfügungen und Aktualisierungen müssen partitioniert werden.

  • Auf einem Abonnenten wurde eine Zeile eingefügt, die schreibgeschützt sein sollte. Abonnenten von Momentaufnahmeveröffentlichungen sollten als schreibgeschützt behandelt werden, ebenso wie Abonnenten von Transaktionsveröffentlichungen, außer es werden aktualisierbare Abonnements oder die Peer-zu-Peer-Transaktionsreplikation verwendet.

  • Es wird eine Tabelle mit einer Identitätsspalte verwendet, die Spalte wird jedoch nicht ordnungsgemäß verwaltet.

Benutzeraktion

Die erforderliche Aktion hängt davon ab, weshalb der Fehler ausgelöst wurde:

  • Einfügungen und Aktualisierungen an einer Zeile finden in mehreren Knoten statt.

    Unabhängig vom Typ der verwendeten Replikation wird empfohlen, Einfügungen und Aktualisierungen möglichst zu partitionieren, da dies den Verarbeitungsaufwand bei der Konflikterkennung und -lösung reduziert. Bei der Peer-zu-Peer-Transaktionsreplikation ist eine Partitionierung von Einfügungen und Aktualisierungen erforderlich. Weitere Informationen finden Sie unter Peer-zu-Peer-Transaktionsreplikation.

  • Auf einem Abonnenten wurde eine Zeile eingefügt, die schreibgeschützt sein sollte.

    Fügen Sie auf dem Abonnenten keine Zeilen ein und aktualisieren Sie keine Zeilen, es sei denn Sie verwenden die Mergereplikation, die Transaktionsreplikation mit aktualisierbaren Abonnements oder die Peer-zu-Peer-Transaktionsreplikation.

  • Es wird eine Tabelle mit einer Identitätsspalte verwendet, die Spalte wird jedoch nicht ordnungsgemäß verwaltet.

    Bei der Mergereplikation und der Transaktionsreplikation mit aktualisierbaren Abonnements sollten Identitätsspalten automatisch durch die Replikation verwaltet werden. Bei der Peer-zu-Peer-Transaktionsreplikation müssen sie manuell verwaltet werden. Weitere Informationen finden Sie unter Replizieren von Identitätsspalten.