考虑以下脚本 - 第二个INSERT语句抛出主键冲突。
BEGIN TRAN
CREATE TABLE UnicodeQuestion
(
UnicodeCol NVARCHAR(100)
COLLATE Latin1_General_CI_AI
)
CREATE UNIQUE INDEX UX_UnicodeCol
ON UnicodeQuestion ( UnicodeCol )
INSERT INTO UnicodeQuestion (UnicodeCol) VALUES (N'ae')
INSERT INTO UnicodeQuestion (UnicodeCol) VALUES (N'æ')
ROLLBACK
据我了解,如果我想让我的索引分别处理这些值,我需要使用二进制排序规则。但是有很多二进制排序,他们的名字中有各自的文化!我不想要文化敏感的治疗......
在nvarchar列中存储任意Unicode数据时,我应该使用哪种排序规则?
答案 0 :(得分:1)
对于Unicode数据it is irrelevant what binary collation you choose。
对于Unicode数据类型,数据比较基于Unicode 代码点。对于Unicode数据类型的二进制排序规则,语言环境 在数据排序中不予考虑。例如,Latin_1_General_BIN和 在Unicode上使用时,Japanese_BIN产生相同的排序结果 数据
具有特定于语言环境的BIN
排序规则的原因是,它确定了处理非Unicode数据时使用的代码页。