我正在审阅标题为Selecting a SQL Server Collation的文章,试图决定将哪一个用于数据库,我注意到两个似乎相同。页面上是否列出了这两者之间是否存在某种差异?
SQL_Latin1_General_Cp437_CI_AS_KI_WI
SQL排序顺序ID = 32
排序顺序名称= nocase.437
描述=字典顺序,不区分大小写
SQL_Latin1_General_Cp850_CI_AS_KI_WI
SQL排序顺序ID = 42
排序顺序名称= nocase.850
描述=字典顺序,不区分大小写
答案 0 :(得分:2)
Cp437
和Cp850
中的数字是指代码页,使用错误的代码页可能会产生一些奇怪的结果!我强烈建议您使用标准排序规则,例如SQL_Latin1_General_CP1_CI_AS
(或_AI
用于重音不敏感。)然而,选择排序是一件棘手的事情,如果您有大量Unicode数据,则使用SQL排序规则可能导致性能问题(由某些人报告),因为您的索引不会涵盖nvarchar
字段中的Unicode字符,或者当存在混合的Unicode和非Unicode数据时可能导致异常排序顺序。有关详细信息,请参阅Collation Types。
我建议您坚持上面列出的SQL Server默认设置,或者根据仔细选择使用Windows排序规则。你会注意到英语(美国)实际上是默认的,我不确定这个校对是否是支持Unicode的校对。
要查看的其他页面是Wikipedia article on ASCII和Extended ASCII,它们解释了代码页及其历史记录。