У меня есть таблица (существующая таблица с данными в ней), и в этой таблице есть столбец UserName.
Я хочу, чтобы это имя пользователя было уникальным.
Поэтому я добавляю ограничение вот так:
ALTER TABLE Users
ADD CONSTRAINT [IX_UniqueUserUserName] UNIQUE NONCLUSTERED ([UserName])
Теперь я продолжаю получать сообщение об ошибке, что в этой таблице присутствуют дублирующие пользователи.
Но я проверил базу данных, используя следующий запрос:
SELECT COUNT(UserId) as NumberOfUsers, UserName
FROM Users
GROUP BY UserName, UserId
ORDER BY UserName
В результате получается список всех пользователей, имеющих 1 в качестве NumberOfUsers. Так что дубликатов там нет.
Но когда я проверяю имя пользователя, он терпит неудачу, я вижу следующий результат:
beluga
béluga
Так что, по-видимому, ему не удается сравнить «е» и «é» или «è» ... Как будто он их игнорирует, есть ли способ, которым sql не игнорирует эти акценты при добавлении ограничения уникального ключа
РЕШЕНИЕ:
Спасибо вам, ребята, я нашел решение.
Это решило проблему:
ALTER TABLE Users
ALTER COLUMN UserName nvarchar(250) COLLATE SQL_Latin1_General_CP1_CI_AS