Windows 排序规则名称 (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
指定 SQL Server 中 COLLATE
子句中的 Windows 排序规则名称。 Windows 排序规则名称是由排序规则指示符和比较样式构成的。
语法
<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>
<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }
参数
CollationDesignator
指定 Windows 排序规则使用的基本排序规则。 基本排序规则涵盖:
- 指定按字典排序时应用的排序和比较规则。 排序规则基于字母表或语言。
- 用于存储 varchar数据 的代码页。
一些示例如下:
Latin1_General
或French
:两者都使用代码页1252
。Turkish
:使用代码页1254
。
CaseSensitivity
CI
指定不区分大小写, CS
指定区分大小写。
AccentSensitivity
AI
指定不区分重音, AS
指定区分重音。
KanatypeSensitive
省略此选项指定 kanatype-insensitive, KS
指定 kanatype-sensitive。
WidthSensitivity
省略此选项指定不区分宽度, WS
指定区分宽度。
VariationSelectorSensitivity
适用于:SQL Server 2017 (14.x) 及更高版本
省略此选项指定变体选择器不区分, VSS
指定变体选择器敏感。
UTF8
适用于:SQL Server 2019 (15.x) 及更高版本
指定用于符合条件的数据类型的 UTF-8 编码。 有关详细信息,请参阅 排序规则和 Unicode 支持。
{ BIN |BIN2 }
BIN
指定要使用的向后兼容的二进制排序顺序。BIN2
指定使用代码点比较语义的二进制排序顺序。
注解
根据排序规则的版本,某些代码点可能没有排序权重或定义的大写/小写映射。 例如,在给定相同字符时比较函数的 LOWER
输出,但在相同排序规则的不同版本中:
SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];
结果集如下。
列名 | Result |
---|---|
Uppercase |
Ǹ |
Lowercase |
ǹ |
第一个语句在较旧的排序规则中同时显示此字符的大写形式和小写形式(排序规则不会影响使用 Unicode 数据时字符的可用性)。
SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];
结果集如下。
列名 | Result |
---|---|
Version80Collation |
Ǹ |
Version100Collation |
ǹ |
第二个语句显示排序规则为排序规则 Latin1_General_CI_AS
时返回大写字符,因为此代码点在该排序规则中未定义小写映射。
使用某些语言时,这对避免旧排序规则至关重要。 例如,这适用于 Telegu。
在某些情况下,Windows 排序规则和 SQL Server 排序规则可以为同一查询生成不同的查询计划。
示例
下表介绍了 Windows 排序规则名称的一些示例。
排序规则 | 说明 |
---|---|
Latin1_General_100_CI_AS |
排序规则使用 Latin1 常规字典排序规则并映射到代码页 1252 。 它是版本 _100 排序规则,区分大小写(CI )和区分重音(AS )。 |
Estonian_CS_AS |
排序规则使用爱沙尼亚字典排序规则并映射到代码页 1257 。 它是版本 _80 排序规则(名称中没有版本号暗示),区分大小写(CS )和区分重音(AS )。 |
Japanese_Bushu_Kakusu_140_BIN2 |
排序规则使用二进制代码点排序规则并映射到代码页 932 。 这是一个版本 _140 排序规则,日本的 Bushu Kakusu 字典排序规则将被忽略。 |
Windows 排序规则
若要列出您的 SQL Server 实例支持的 Windows 排序规则,请执行以下查询。
SELECT *
FROM sys.fn_helpcollations()
WHERE [name] NOT LIKE N'SQL%';