这是欧洲+英语的最佳校对

时间:2010-08-09 12:24:55

标签: sql-server-2005 collation

HI那里,

我正在开发欧洲语言和英语,字符串在sql server 2005中存储为NVARCHAR。

所以,最好使用的排序规则是“Latin1_General_CI_AS”涵盖所有? 还有各种变化 Latin1_General_CP1_CI_AS,Latin1_General_BIN,Latin1_General_BIN2等

评论\建议赞赏。

此致 DEE

1 个答案:

答案 0 :(得分:2)

对于通用排序,“General Latin1”可能是西欧和英语的最佳选择。

我相信如果未指定代码页(例如,CP1),则默认为代码页1252(这也是CP1表示的代码)。所以我的理解是Latin1_General_CI_AS和Latin1_General_CP1_CI_AS是等价的。鉴于此,我认为Latin1_General_CP1_CI_AS是出于清晰度原因的更好选择。无论您使用CI_ASCS_AS还是CI_AI,纯粹是一个可用性问题,具体取决于您是否需要区分大小写和/或重音敏感度。使用CI"a" == "A"AI"á" == "â"

_BIN和_BIN2选项表示根据代码点值进行排序规则。出于排序目的,您可能不希望这样,因为订单不一定匹配任何类型的字典顺序。但是,如果您只使用索引搜索数据,那么其中一个可能是合适的,因为它可能更快。将字符值转换为关联的键值需要相对较少的计算。

编辑正如Martin在评论中指出的那样,除非您使用char,memo或varchar,否则代码页无关紧要。如果您完全坚持使用Unicode(nchar,nvarchar,nmemo),那么代码页将无法发挥作用。但是,如果将Unicode字符转换为单字节字符,则会使用它。