当我运行此SQL语句时:
在单词上创建独特的索引WordsIndex(Word ASC);
我收到以下异常消息:
CREATE UNIQUE INDEX语句终止,因为找到了对象名称“dbo.Words”和索引名称“WordsIndex”的重复键。重复键值为(ass)。 声明已经终止。
'Word'列的数据类型为nvarchar(100)。
“Word”列中有两个项目,SQL Server将其解释为相同:“aß”和“ass”,这会导致索引失败。
为什么SQL Server会将这两个不同的单词解释为同一个单词?
答案 0 :(得分:4)
副本是由于列的整理造成的。以下查询将告诉您正在使用的排序规则:
Select COLLATION_NAME
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME = 'WordsIndex'
And COLUMN_NAME = 'Words'
此外,在德语中,'ß'相当于'ss'。因此,如果您使用西欧整理(例如SQL_Latin1_General_CP1_CI_AS),它将知道这些是等效的。
答案 1 :(得分:0)