相关疑难解决方法(0)

表列的唯一约束

我有一个表(一个包含数据的现有表),该表有一个UserName列.我希望这个UserName是唯一的.所以我添加这样的约束:

ALTER TABLE Users 
ADD CONSTRAINT [IX_UniqueUserUserName] UNIQUE NONCLUSTERED ([UserName])
Run Code Online (Sandbox Code Playgroud)

现在我不断收到此表中存在重复用户的错误.但是我使用以下查询检查了数据库:

SELECT COUNT(UserId) as NumberOfUsers, UserName 
FROM Users 
GROUP BY UserName, UserId 
ORDER BY UserName
Run Code Online (Sandbox Code Playgroud)

这导致一个用户列表都具有1作为NumberOfUsers.所以没有重复.但是当我检查用户名失败时,我看到以下结果:

beluga
béluga
Run Code Online (Sandbox Code Playgroud)

所以他显然没有比较"e"和"é"或"è"......这就像他忽略了这些,在添加唯一键约束时,sql是否有任何方法不会忽略这些重音.

解:

THX对你们我找到了解决方案.这解决了这个问题:

ALTER TABLE Users 
ALTER COLUMN UserName nvarchar(250) COLLATE SQL_Latin1_General_CP1_CI_AS
Run Code Online (Sandbox Code Playgroud)

sql sql-server constraints diacritics unique-key

1
推荐指数
2
解决办法
2387
查看次数

标签 统计

constraints ×1

diacritics ×1

sql ×1

sql-server ×1

unique-key ×1