Unique-Einschränkung der Spalte nur eine NULL-Wert

Einer Unique-Einschränkung erstellt werden können auf eine Spalte, die Null-Werte enthalten kann. Bei den meisten, nur eine einzelne Zeile je enthalten eine NULL in dieser Spalte.

Verstehe ich nicht, warum dies der Fall ist, da, per definition, eine NULL ist nicht gleich dem anderen NULL (da ist NULL wirklich einen unbekannten Wert und einem unbekannten Wert nicht gleich einem anderen unbekannten Wert).

Meine Fragen:
1. Warum ist das so?
2. Ist dies spezifisch für MsSQL?

Habe ich eine Ahnung, dass es da ein Unique-Constraint kann als Referenz für eine Foreign Key-und dass der FK würde sonst nicht wissen, welcher Datensatz in der Tabelle, um die es sich wenn mehr als ein Datensatz mit NULL-Bestand. Aber, es ist nur eine Vermutung.

(Ja, ich verstehe, dass UCs kann sich über mehrere Spalten, aber das ändert nicht die Frage, sondern nur erschwert es ein wenig.)

Könnten Sie fügen Sie die CREATE TABLE-Anweisung. Könnte es sein, legen Sie die Werte "NULL" als string anstelle von real NULL
Fairen Kommentar, aber, Nein, es ist kein string, sondern ein integer-Feld. Sie versuchen zu erfassen oder ändern einer bestehenden integer-Wert NULL Ergebnisse in der "Verletzung der UNIQUE KEY-Einschränkung... Nicht insert duplicate key in object <tablename>..."

InformationsquelleAutor Chris Bargh | 2013-07-05

Schreibe einen Kommentar