Windows 定序名稱 (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (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
省略此選項會指定假名不區分假名, KS
指定假名區分假名。
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];
結果集如下所示。
資料行名稱 | 結果 |
---|---|
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];
結果集如下所示。
資料行名稱 | 結果 |
---|---|
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%';