Windows 照合順序名 (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 }

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

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 のエンコードが使用されるように指定します。 詳細については、「 Collation and Unicode Support」を参照してください。

BIN
旧バージョンとの互換性のあるバイナリ並べ替え順を使用します。

BIN2
コード ポイントの比較セマンティクスを使用するバイナリ並べ替え順を指定します。

注釈

照合順序のバージョンによっては、一部のコード ポイントで、並べ替え加重や大文字/小文字マッピングが定義されない可能性があります。 たとえば、次のような LOWER 関数の出力を比較してみます。この場合、同じ文字が指定されていますが、同じ照合順序でもバージョンは異なります。

SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
       NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];
-- Ǹ    ǹ


SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
       LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];
-- Ǹ    ǹ

最初のステートメントには、古い照合順序のこの文字の大文字と小文字の両方の形式が示されています (Unicode データを操作する場合、照合順序は文字の可用性には影響しません)。 しかし、2 番目のステートメントは、照合順序が 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 の照合順序であり、日本語の部首画数辞書並べ替え規則は無視されます。

Windows 照合順序

SQL Server インスタンスでサポートされている Windows 照合順序の一覧を表示するには、次のクエリを実行します。

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

次の表に、SQL Server でサポートされるすべての Windows 照合順序を示します。

Windows ロケール 照合順序バージョン 100 照合順序バージョン 90
アルザス語 (フランス) Latin1_General_100_ 使用不可
アムハラ語 (エチオピア) Latin1_General_100_ 使用不可
アルメニア語 (アルメニア) Cyrillic_General_100_ 使用不可
アッサム語 (インド) Assamese_100_ 1 使用不可
ベンガル語 (バングラデシュ) Bengali_100_1 使用不可
バシキール語 (ロシア) Bashkir_100_ 使用不可
バスク語 (バスク) Latin1_General_100_ 使用不可
ベンガル語 (インド) 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_ 使用不可
モンゴル語 (PRC) 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_
チベット語 (PRC) Tibetan_100_1 使用不可
トルクメン語 (トルクメニスタン) Turkmen_100_ 使用不可
ウイグル語 (PRC) Uighur_100_ 使用不可
上ソルブ語 (ドイツ) Upper_Sorbian_100_ 使用不可
ウルドゥー語 (パキスタン) Urdu_100_ 使用不可
ウェールズ語 (イギリス) Welsh_100_ 使用不可
ウォロフ語 (セネガル) French_100_ 使用不可
コサ語 (南アフリカ) Latin1_General_100_ 使用不可
サハ語 (ロシア) Yakut_100_ 使用不可
イ語 (PRC) Latin1_General_100_ 使用不可
ヨルバ語 (ナイジェリア) Latin1_General_100_ 使用不可
ズールー語 (南アフリカ) Latin1_General_100_ 使用不可
SQL Server 2008 (10.0.x) 以降では非推奨とされており、サーバー レベルでは利用できません ヒンディー語 ヒンディー語
SQL Server 2008 (10.0.x) 以降では非推奨とされており、サーバー レベルでは利用できません Korean_Wansung_Unicode Korean_Wansung_Unicode
SQL Server 2008 (10.0.x) 以降では非推奨とされており、サーバー レベルでは利用できません Lithuanian_Classic Lithuanian_Classic
SQL Server 2008 (10.0.x) 以降では非推奨とされており、サーバー レベルでは利用できません マケドニア語 マケドニア語

1 Windows の Unicode のみの照合順序は、列レベルまたは式レベルのデータにのみ適用できます。 これらの照合順序は、サーバーまたはデータベースの照合順序としては使用できません。

2 中国語 (台湾) の照合順序と同様に、中国語 (マカオ SAR) は簡体中国語の規則を使用し、中国語 (台湾) とは異なるコード ページ 950 を使用します。

参照