【发布时间】:2013-03-10 21:14:54
【问题描述】:
为什么所有 SQL Server 2008 R2 排序规则都与代码页相关联。所有排序规则都是 unicode 吗?
当我们的数据库被多种语言使用不同的代码页时,如何选择排序规则?
谢谢。
【问题讨论】:
-
@marc_s Unicode (nchar/nvarchar) 字段也定义了排序规则..
-
@marc_s:同意,但您说“非 Unicode 编码 - 这些已定义排序规则”,这可能意味着 unicode 字段没有/需要排序规则,而诸如区分大小写比较/排序之类的事情无论编码如何,始终指定方法。
-
@frikozoid:好的 - 所有文本列都分配了一个排序规则。对于 non-Unicode 列 (
char/varchar),它定义了编码(您可以存储和返回的可能字符)以及用于排序的字符顺序。使用非 Unicode,您必须选择 一个排序规则,然后您就被困住了。对于 Unicode 数据类型 (nchar/nvarchar),分配的排序规则 only 定义排序顺序 - 编码(可能的字符)始终是 UCS-2/UTF-16 字符set - 排序规则不会以任何方式、形状或形式影响它。
标签: sql-server sql-server-2008-r2 collation