Windows 排序规则名称 (Transact-SQL)

在 SQL Server 2012 的 COLLATE 子句中指定 Windows 排序规则名称。 Windows 排序规则名称是由排序规则指示符和比较样式构成的。

主题链接图标 Transact-SQL 语法约定

语法

<Windows_collation_name> :: =  
     CollationDesignator_<ComparisonStyle>
<ComparisonStyle> :: =  
    { CaseSensitivity_AccentSensitivity 
        [ _KanatypeSensitive ] [ _WidthSensitive ]  }
  | { _BIN | _BIN2 }

参数

  • CollationDesignator
    指定 Windows 排序规则使用的基本排序规则。 基本排序规则包括以下内容:

    • 指定按字典排序时应用的排序规则。 排序规则基于字母表或语言。

    • 用于存储非 Unicode 字符数据的代码页。

    以下是一些示例:

    • Latin1_General 或法语:都使用代码页 1252。

    • 土耳其语:使用代码页 1254。

  • CaseSensitivity
    CI 指定不区分大小写,CS 指定区分大小写。

  • AccentSensitivity
    AI 指定不区分重音,AS 指定区分重音。

  • KanatypeSensitive
    Omitted 指定不区分假名类型,KS 指定区分假名类型。

  • WidthSensitivity
    Omitted 指定不区分全半角,WS 指定区分全半角。

  • BIN
    指定使用向后兼容的二进制排序顺序。

  • BIN2
    指定使用码位比较语义的二进制排序顺序。

备注

根据排序规则版本的不同,一些码位可能未定义。 例如比较:

SELECT LOWER(nchar(504) COLLATE Latin1_General_CI_AS); 
SELECT LOWER (nchar(504) COLLATE Latin1_General_100_CI_AS);
GO

当排序规则为 Latin1_General_CI_AS 时,第一行返回一个大写字符,因为在此排序规则中,该码位未定义。

当使用某些语言时,避免使用旧的排序规则十分重要。 例如,特拉古语便是如此。

在某些情况下,Windows 排序规则和 SQL Server 排序规则可为同一查询生成不同的查询计划。

示例

下面是一些 Windows 排序规则名称示例:

  • Latin1_General_100_

排序规则使用 Latin1 General 字典排序规则,代码页 1252。 不区分大小写且区分重音。 排序规则使用 Latin1 General 字典排序规则,并映射到代码页 1252。 如果是 Windows 排序规则,则显示排序规则的版本号:_90 或 _100。 不区分大小写 (CI),区分重音 (AS)。

  • Estonian_CS_AS

    排序规则使用爱沙尼亚文字典排序规则,代码页 1257。 区分大小写且区分重音。

  • Latin1_General_BIN

    排序规则使用代码页 1252 和二进制排序规则。 忽略 Latin1 General 字典排序规则。

Windows 排序规则

若要列出您的 SQL Server 实例支持的 Windows 排序规则,请执行以下查询。

SELECT * FROM sys.fn_helpcollations() WHERE name NOT LIKE 'SQL%';

下表列出了 SQL Server 2012 中支持的所有 Windows 排序规则。

Windows 区域设置

排序规则版本 100

排序规则版本 90

阿尔萨斯语(法国)

Latin1_General_100_

不可用

阿姆哈拉语(埃塞俄比亚)

Latin1_General_100_

不可用

亚美尼亚语(亚美尼亚)

Cyrillic_General_100_

不可用

阿萨姆语(印度)

Assamese_100_ 1

不可用

巴什基尔语(俄罗斯)

Bashkir_100_

不可用

巴斯克语(巴斯克)

Latin1_General_100_

不可用

孟加拉语(孟加拉)

Bengali_100_1

不可用

孟加拉语(印度)

Bengali_100_1

不可用

波斯尼亚语(波斯尼亚和黑塞哥维那,西里尔文)

Bosnian_Cyrillic_100_

不可用

波斯尼亚语(波斯尼亚和黑塞哥维那,拉丁语)

Bosnian_Latin_100_

不可用

布列塔尼语(法国)

Breton_100_

不可用

中文(中华人民共和国澳门特别行政区)

Chinese_Traditional_Pinyin_100_

不可用

中文(中华人民共和国澳门特别行政区)

Chinese_Traditional_Stroke_Order_100_

不可用

中文(新加坡)

Chinese_Simplified_Stroke_Order_100_

不可用

科西嘉语(法国)

Corsican_100_

不可用

克罗地亚语(波斯尼亚和黑塞哥维那,拉丁语)

Croatian_100_

不可用

达里语(阿富汗)

Dari_100_

不可用

英语(印度)

Latin1_General_100_

不可用

英语(马来西亚)

Latin1_General_100_

不可用

英语(新加坡)

Latin1_General_100_

不可用

菲律宾语(菲律宾)

Latin1_General_100_

不可用

弗里西亚语(荷兰)

Frisian_100_

不可用

格鲁吉亚语(格鲁吉亚)

Cyrillic_General_100_

不可用

格陵兰语(格陵兰)

Danish_Greenlandic_100_

不可用

古吉拉特语(印度)

Indic_General_100_1

Indic_General_90_

豪撒语(尼日利亚,拉丁语)

Latin1_General_100_

不可用

印地语(印度)

Indic_General_100_1

Indic_General_90_

伊博语(尼日利亚)

Latin1_General_100_

不可用

因纽特语(加拿大,拉丁语)

Latin1_General_100_

不可用

因纽特语(语音节)加拿大

Latin1_General_100_

不可用

爱尔兰语(爱尔兰)

Latin1_General_100_

不可用

日语(日本 XJIS)

Japanese_XJIS_100_

Japanese_90_、Japanese_

日语(日本)

Japanese_Bushu_Kakusu_100_

不可用

卡纳达语(印度)

Indic_General_100_1

Indic_General_90_

高棉语(柬埔寨)

Khmer_100_1

不可用

基切语(危地马拉)

Modern_Spanish_100_

不可用

卢旺达语(卢旺达)

Latin1_General_100_

不可用

孔卡尼语(印度)

Indic_General_100_1

Indic_General_90_

老挝语(老挝人民民主共和国)

Lao_100_1

不可用

下索布语(德国)

Latin1_General_100_

不可用

卢森堡语(卢森堡)

Latin1_General_100_

不可用

马拉雅拉姆语(印度)

Indic_General_100_1

不可用

马耳他语(马耳他)

Maltese_100_

不可用

毛利语(新西兰)

Maori_100_

不可用

马普丹冈语(智利)

Mapudungan_100_

不可用

马拉地语(印度)

Indic_General_100_1

Indic_General_90_

莫霍克语(加拿大)

Mohawk_100_

不可用

蒙古语(中国)

Cyrillic_General_100_

不可用

尼泊尔语(尼泊尔)

Nepali_100_1

不可用

挪威语(博克马尔语,挪威)

Norwegian_100_

不可用

挪威语(尼诺斯克语,挪威)

Norwegian_100_

不可用

奥克西唐语(法国)

French_100_

不可用

奥里雅语(印度)

Indic_General_100_1

不可用

普什图语(阿富汗)

Pashto_100_1

不可用

波斯语(伊朗)

Persian_100_

不可用

旁遮普语(印度)

Indic_General_100_1

Indic_General_90_

克丘亚语(玻利维亚)

Latin1_General_100_

不可用

克丘亚语(厄瓜多尔)

Latin1_General_100_

不可用

克丘亚语(秘鲁)

Latin1_General_100_

不可用

罗曼什语(瑞士)

Romansh_100_

不可用

萨米语(伊纳里,芬兰)

Sami_Sweden_Finland_100_

不可用

萨米语(律勒欧,挪威)

Sami_Norway_100_

不可用

萨米语(律勒欧,瑞典)

Sami_Sweden_Finland_100_

不可用

萨米语(北方,芬兰)

Sami_Sweden_Finland_100_

不可用

萨米语(北方,挪威)

Sami_Norway_100_

不可用

萨米语(北方,瑞典)

Sami_Sweden_Finland_100_

不可用

萨米语(斯科特,芬兰)

Sami_Sweden_Finland_100_

不可用

萨米语(南方,挪威)

Sami_Norway_100_

不可用

萨米语(南方,瑞典)

Sami_Sweden_Finland_100_

不可用

梵语(印度)

Indic_General_100_1

Indic_General_90_

塞尔维亚语(波斯尼亚和黑塞哥维那,西里尔文)

Serbian_Cyrillic_100_

不可用

塞尔维亚语(波斯尼亚和黑塞哥维那,拉丁语)

Serbian_Latin_100_

不可用

塞尔维亚语(塞尔维亚,西里尔语)

Serbian_Cyrillic_100_

不可用

塞尔维亚语(塞尔维亚,拉丁语)

Serbian_Latin_100_

不可用

巴索托语/北索托语(南非)

Latin1_General_100_

不可用

茨瓦纳语/博茨瓦纳(南非)

Latin1_General_100_

不可用

僧伽罗语(斯里兰卡)

Indic_General_100_1

不可用

斯瓦希里语(肯尼亚)

Latin1_General_100_

不可用

叙利亚语(叙利亚)

Syriac_100_1

Syriac_90_

塔吉克语(塔吉克斯坦)

Cyrillic_General_100_

不可用

塔马塞特文(阿尔及利亚,拉丁语)

Tamazight_100_

不可用

泰米尔语(印度)

Indic_General_100_1

Indic_General_90_

泰卢固语(印度)

Indic_General_100_1

Indic_General_90_

藏语(中国)

Tibetan_100_1

不可用

土库曼语(土库曼斯坦)

Turkmen_100_

不可用

维吾尔语(中国)

Uighur_100_

不可用

上索布语(德国)

Upper_Sorbian_100_

不可用

乌尔都语(巴基斯坦)

Urdu_100_

不可用

威尔士语(英国)

Welsh_100_

不可用

沃洛夫语(塞内加尔)

French_100_

不可用

班图语/索萨语(南非)

Latin1_General_100_

不可用

雅库特语(俄罗斯)

Yakut_100_

不可用

彝语(中国)

Latin1_General_100_

不可用

约鲁巴语(尼日利亚)

Latin1_General_100_

不可用

祖鲁语(南非)

Latin1_General_100_

不可用

不推荐使用;在 SQL Server 2008 或更高版本中,在服务器级别不可用

印地语

印地语

不推荐使用;在 SQL Server 2008 或更高版本中,在服务器级别不可用

Korean_Wansung_Unicode

Korean_Wansung_Unicode

不推荐使用;在 SQL Server 2008 或更高版本中,在服务器级别不可用

Lithuanian_Classic

Lithuanian_Classic

不推荐使用;在 SQL Server 2008 或更高版本中,在服务器级别不可用

马其顿语

马其顿语

1仅 Unicode 的 Windows 排序规则只能应用于列级或表达式级数据。 它们不能用作服务器或数据库排序规则。

2与中文(台湾)排序规则类似,中文(澳门)使用简体中文的规则;与中文(台湾)不同,它使用代码页 950。

请参阅

参考

ALTER TABLE (Transact-SQL)

常量 (Transact-SQL)

CREATE DATABASE (Transact-SQL)

CREATE TABLE (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

表 (Transact-SQL)

sys.fn_helpcollations (Transact-SQL)

概念

排序规则和 Unicode 支持