Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann man die Primärschlüsselduplizierung anhand eines SQL Server 2008-Fehlercodes identifizieren?

Wenn Sie SqlException abfangen, sehen Sie seine Nummer, die Nummer 2627 würde eine Verletzung der Eindeutigkeitsbeschränkung (einschließlich Primärschlüssel) bedeuten.

try
{
    // insertion code
}
catch (SqlException ex)
{
    if (ex.Number == 2627)
    {
        //Violation of primary key. Handle Exception
    }
    else throw;
}

MSSQL_ENG002627

Dies ist ein allgemeiner Fehler, der unabhängig davon ausgelöst werden kann, ob eine Datenbank repliziert wird. In replizierten Datenbanken wird der Fehler normalerweise ausgelöst, weil Primärschlüssel nicht angemessen verwaltet wurden über die Topologie.