2016-04-04 12 views
-2

Während eine Aufzeichnung an meinen Tisch table1 in SQL Server 2008 Beispiel des Einfügen, erhalte ich die folgenden FehlerSSMS Anzeigen diff Fehlermeldung 2008 und 2014 auf Verletzung der UNIQUE KEY-Einschränkung

Msg 2627, Ebene 14, Status 1, Zeile 1
Verletzung der UNIQUE KEY-Einschränkung 'IX_table1'. Kann keinen doppelten Schlüssel in Objekt 'dbo.table1' einfügen.

Aber während die gleiche Abfrage in SQL Server 2014 (Kopie der oben genannten Datenbank) ausgeführt wird, erhalte ich einen Unterschied in der Fehlermesssage

Msg 2627, Ebene 14, Status 1, Zeile 2
Verletzung der UNIQUE KEY-Einschränkung 'IX_table1' Kann keinen doppelten Schlüssel in Objekt 'dbo.table1' einfügen.
Der doppelte Schlüsselwert ist (xxx,).

In die Fehlermeldung gibt den duplizierten Wert in der Nachricht (The duplicate key value is xxx), aber in 2008 es nicht.

Warum das? Ist das ein neues Feature für 2014? oder gibt es Einstellungen zum Ändern/Formatieren der Fehlermeldungen?

+0

Bitte geben Sie die Tabellenstruktur und die wichtigsten Einschränkungen für beide Umgebungen an. – Raj

+0

Was sind die Definitionen von 'PK_AsrAssetMst' und' IX_AsRAssetMst'? – strickt01

+0

Sie haben nur die Fehlermeldungen anders konfiguriert, wie Sie im Jahr 2014 sehen können, es hat sogar den Wert angegeben, der den Trigger ausgelöst hat, aber es ist genau der gleiche Fehler. – sagi

Antwort

6

Es gab eine große Nachfrage von Benutzern, dass bei Auftreten der PK-Verletzung der Wert angezeigt wird, der den Konflikt verursacht hat. Wenn die Verletzung in einer einfachen INSERT-Anweisung auftritt, die eine Zeile einfügt, dann ist es ein Fehler, die Verletzung trat aufgrund des Werts auf, der eingefügt wird. Aber INSERT kann auch einen Satz einfügen, z. INSERT INTO ... SELECT ... FROM... und dann ist es viel schwieriger, herauszufinden welche Zeile aus dem Satz verursachte die Verletzung.

In SQL Server 2014 gab es eine Verbesserung, um den doppelten Schlüssel, der die Verletzung verursacht hat, zu erfassen und in der Fehlermeldung anzuzeigen.

+0

Hallo, können Sie eine PLZ/Verweis hinzufügen für * In SQL Server 2014 gab es eine Verbesserung, um den doppelten Schlüssel zu erfassen *. Danke in adv –