[英]Creating SQL Server index on a nvarchar column
当我运行此SQL语句时:
在单词上创建唯一索引WordsIndex(Word ASC);
我收到以下异常消息:
CREATE UNIQUE INDEX语句终止,因为找到了对象名称“ dbo.Words”和索引名称“ WordsIndex”的重复键。 重复的键值为(ass)。 该语句已终止。
“字”列的数据类型为nvarchar(100)。
SQL Server将“ Word”列中的两个项目解释为相同的项目:“aß”和“ ass”,这会导致索引失败。
为什么SQL Server会将这两个不同的单词解释为同一单词?
重复是由于该列的排序规则。 以下查询将告诉您所使用的排序规则:
Select COLLATION_NAME
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_NAME = 'WordsIndex'
And COLUMN_NAME = 'Words'
另外,在德语中,“ß”等同于“ ss”。 因此,如果您使用的是西欧归类(例如SQL_Latin1_General_CP1_CI_AS),它将知道它们是等效的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.