分享方式:


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 定序名稱是由定序指示項和比較樣式組成。

Transact-SQL 語法慣例

語法

<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>

<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }

引數

CollationDesignator

指定 Windows 定序所用的基底定序規則。 基底定序規則涵蓋:

  • 在指定了字典排序時,會套用的排序與比較規則。 排序規則根據字母或語言而定。
  • 用於儲存 varchar 資料的字碼頁。

部份範例如下:

  • Latin1_GeneralFrench:兩者都使用代碼頁 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%';