Ich habe eine Tabelle (eine vorhandene Tabelle mit Daten darin) und diese Tabelle hat eine Spalte UserName. Ich möchte, dass dieser Benutzername eindeutig ist. So füge ich eine Einschränkung wie folgt aus:Eindeutige Einschränkung für Tabellenspalte
ALTER TABLE Users
ADD CONSTRAINT [IX_UniqueUserUserName] UNIQUE NONCLUSTERED ([UserName])
Jetzt halte ich den Fehler bekommen die Benutzer duplizieren in dieser Tabelle existieren. Aber ich habe die Datenbank mit der folgenden Abfrage überprüft:
SELECT COUNT(UserId) as NumberOfUsers, UserName
FROM Users
GROUP BY UserName, UserId
ORDER BY UserName
Dies führt zu einer Liste der Benutzer alle mit 1 als NumberOfUsers. Also keine Duplikate dort. Aber wenn ich überprüfe die Benutzername er mich nicht sehen folgendes Ergebnis: er versagt So apperently
beluga
béluga
ein „e“ und „E“ oder „e“ zu vergleichen ... Es ist wie er dies ignoriert , gibt es eine Möglichkeit, dass sql diese Akzente nicht ignoriert, wenn der einzigartige Schlüssel contraint hinzugefügt wird.
LÖSUNG:
THX an euch habe ich die Lösung gefunden. Dies das Problem behoben:
ALTER TABLE Users
ALTER COLUMN UserName nvarchar(250) COLLATE SQL_Latin1_General_CP1_CI_AS
Dies scheint mit dem ein Problem zu sein Datenbanksortierung. Auf welche Kollatierung ist es eingestellt? –