照合順序と Unicode のサポートCollation and Unicode support

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL ServerSQL Server の照合順序により、並べ替え規則、大文字と小文字の区別、およびアクセントの区別のプロパティをデータで利用できるようになります。Collations in SQL ServerSQL Server provide sorting rules, case, and accent sensitivity properties for your data. charvarchar などの文字データ型に使用する照合順序は、そのデータ型で表すことのできるコード ページおよび対応する文字を指定します。Collations that are used with character data types, such as char and varchar, dictate the code page and corresponding characters that can be represented for that data type.

SQL ServerSQL Server の新しいインスタンスをインストールしているか、データベース バックアップを復元しているか、サーバーをクライアント データベースに接続しているかに関係なく、操作するデータのロケールの要件、並べ替え順序、および大文字と小文字の区別とアクセントの区別について理解することが重要です。Whether you're installing a new instance of SQL ServerSQL Server, restoring a database backup, or connecting server to client databases, it's important to understand the locale requirements, sorting order, and case and accent sensitivity of the data that you're working with. SQL ServerSQL Server のインスタンスで使用可能な照合順序の一覧については、「sys.fn_helpcollations (Transact-SQL)」を参照してください。To list the collations that are available on your instance of SQL ServerSQL Server, see sys.fn_helpcollations (Transact-SQL).

サーバー、データベース、列、または式の照合順序を選択すると、特定の特性がデータに割り当てられます。When you select a collation for your server, database, column, or expression, you're assigning certain characteristics to your data. これらの特性は、データベースのさまざまな操作の結果に影響を与えます。These characteristics affect the results of many operations in the database. たとえば、ORDER BY を使用してクエリを構築する場合、結果セットの並べ替え順序は、データベースに適用される照合順序、またはクエリの式レベルで COLLATE 句に指定される照合順序に依存します。For example, when you construct a query by using ORDER BY, the sort order of your result set might depend on the collation that's applied to the database or dictated in a COLLATE clause at the expression level of the query.

SQL ServerSQL Server の照合順序サポートを最大限に利用するには、このトピックで定義されている用語と、それらがデータの特性にどのように関連しているかを理解する必要があります。To best use collation support in SQL ServerSQL Server, you should understand the terms that are defined in this topic and how they relate to the characteristics of your data.

照合順序の用語Collation terms

照合順序Collation

照合順序では、データセット内の各文字を表すビット パターンが指定されます。A collation specifies the bit patterns that represent each character in a dataset. また、照合順序はデータの並べ替えおよび比較を行うための規則を決定します。Collations also determine the rules that sort and compare data. SQL ServerSQL Server では、単一のデータベース内で異なる照合順序を持つオブジェクトを格納できます。supports storing objects that have different collations in a single database. 非 Unicode 列の場合は、照合順序の設定によってデータのコード ページと表示可能な文字が指定されます。For non-Unicode columns, the collation setting specifies the code page for the data and which characters can be represented. 非 Unicode 列の間でデータを移動する場合は、移動元のコード ページから移動先のコード ページに変換する必要があります。The data that you move between non-Unicode columns must be converted from the source code page to the destination code page.

Transact-SQLTransact-SQL ステートメントの結果は、それぞれ異なる照合順序が設定されている複数のデータベースのコンテキストでステートメントが実行される場合には、データベースごとに異なります。statement results can vary when the statement is run in the context of different databases that have different collation settings. 可能であれば、組織全体で同じ照合順序を使用します。If possible, use a standardized collation for your organization. これにより、すべての文字または Unicode 表現で照合順序を指定する必要がなくなります。This way, you don't have to specify the collation in every character or Unicode expression. 異なる照合順序とコード ページが設定されたオブジェクトを操作する場合は、照合の優先順位の規則を考慮してクエリを作成します。If you must work with objects that have different collation and code page settings, code your queries to consider the rules of collation precedence. 詳細については、「 照合順序の優先順位 (Transact-SQL)」を参照してください。For more information, see Collation Precedence (Transact-SQL).

照合順序に関連するオプションは、大文字と小文字の区別、アクセントの区別、かなの区別、および文字幅の区別、バリエーションの選択の区別です。The options associated with a collation are case sensitivity, accent sensitivity, kana sensitivity, width sensitivity, and variation-selector sensitivity. SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、UTF-8 エンコードのための追加のオプションが導入されています。introduces an additional option for UTF-8 encoding.

これらのオプションは、照合順序の名前に付加することによって指定できます。You can specify these options by appending them to the collation name. たとえば、Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 という照合順序では、大文字と小文字、アクセント、かな、文字幅、UTF-8 エンコードが区別されます。For example, the collation Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 is case-sensitive, accent-sensitive, kana-sensitive, width-sensitive, and UTF-8 encoded. また、Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS という照合順序では、大文字小文字とアクセントが区別されず、かな、文字幅、異体字セレクターが区別され、非 Unicode エンコードが使用されます。As another example, the collation Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS is case-insensitive, accent-insensitive, kana-sensitive, width-sensitive, variation-selector-sensitive, and it uses non-Unicode encoding.

次の表では、これらのさまざまなオプションに関連付けられている動作を説明します。The behavior associated with these various options is described in the following table:

オプションOption [説明]Description
大文字と小文字を区別する (_CS)Case-sensitive (_CS) 大文字と小文字を区別します。Distinguishes between uppercase and lowercase letters. このオプションを選択すると、大文字より先に小文字が並べ替えられます。If this option is selected, lowercase letters sort ahead of their uppercase versions. このオプションを選択しないと、照合順序で大文字と小文字が区別されません。If this option isn't selected, the collation is case-insensitive. つまり、大文字と小文字は、並べ替えを行う際に SQL ServerSQL Server によって同じものと見なされます。That is, SQL ServerSQL Server considers the uppercase and lowercase versions of letters to be identical for sorting purposes. 大文字と小文字を区別しないことを明示的に選択するには、_CI と指定します。You can explicitly select case insensitivity by specifying _CI.
アクセントを区別する (_AS)Accent-sensitive (_AS) アクセントのある文字とアクセントのない文字を区別します。Distinguishes between accented and unaccented characters. たとえば、"a" と "ấ" は等しくありません。For example, "a" is not equal to "ấ". このオプションを選択しないと、照合順序でアクセントが区別されません。If this option isn't selected, the collation is accent-insensitive. つまり、アクセントのある文字とアクセントのない文字は、並べ替えを行う際に SQL ServerSQL Server によって同じものと見なされます。That is, SQL ServerSQL Server considers the accented and unaccented versions of letters to be identical for sorting purposes. アクセントを区別しないことを明示的に選択するには、_AI と指定します。You can explicitly select accent insensitivity by specifying _AI.
かなを区別する (_KS)Kana-sensitive (_KS) 次の 2 種類の日本語かな文字を区別します。ひらがなとカタカナ。Distinguishes between the two types of Japanese kana characters: Hiragana and Katakana. このオプションを選択しないと、照合順序でかなが区別されません。If this option isn't selected, the collation is kana-insensitive. つまり、ひらがなとカタカナは、並べ替えを行う際に SQL ServerSQL Server によって同じものと見なされます。That is, SQL ServerSQL Server considers Hiragana and Katakana characters to be equal for sorting purposes. かなを区別しないように指定する唯一の方法は、このオプションを省略することです。Omitting this option is the only method of specifying kana-insensitivity.
文字幅を区別する (_WS)Width-sensitive (_WS) 全角文字と半角文字を区別します。Distinguishes between full-width and half-width characters. このオプションを選択しないと、同じ文字の全角表現と半角表現は、並べ替えを行うときに SQL ServerSQL Server によって同じものと見なされます。If this option isn't selected, SQL ServerSQL Server considers the full-width and half-width representation of the same character to be identical for sorting purposes. 文字幅を区別しないように指定する唯一の方法は、このオプションを省略することです。Omitting this option is the only method of specifying width-insensitivity.
異体字の選択を区別する (_VSS)Variation-selector-sensitive (_VSS) SQL Server 2017 (14.x)SQL Server 2017 (14.x) で導入された日本語の照合順序 Japanese_Bushu_Kakusu_140Japanese_XJIS_140 で、多様な表意文字のバリエーションの選択を区別します。Distinguishes between various ideographic variation selectors in the Japanese collations Japanese_Bushu_Kakusu_140 and Japanese_XJIS_140, which are introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x). バリエーションのシーケンスは、基本文字と追加のバリエーションの選択で構成されます。A variation sequence consists of a base character plus an additional variation selector. この _VSS オプションを選択しない場合、照合順序で異体字の選択が区別されず、比較において異体字の選択が考慮されることはありません。If this _VSS option isn't selected, the collation is variation-selector-insensitive, and the variation selector isn't considered in the comparison. つまり、SQL ServerSQL Server では、並べ替えが同じになるように、バリエーションの選択が異なる同じ基本文字に基づいて構築された文字が考慮されています。That is, SQL ServerSQL Server considers characters built upon the same base character with differing variation selectors to be identical for sorting purposes. 詳細については、「Unicode 表意文字のバリエーション データベース」を参照してください。For more information, see Unicode Ideographic Variation Database.

異体字セレクターを区別する (_VSS) 照合順序は、全文検索インデックスではサポートされていません。Variation-selector-sensitive (_VSS) collations aren't supported in full-text search indexes. フルテキスト検索インデックスでは、アクセントを区別する (_AS)、かなを区別する (_KS)、文字幅を区別する (_WS) オプションのみがサポートされます。Full-text search indexes support only Accent-Sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options. SQL ServerSQL Server XML と CLR のエンジンでは、(_VSS) 異体字セレクターはサポートされていません。XML and CLR engines don't support (_VSS) Variation selectors.
バイナリ (_BIN) 1Binary (_BIN)1 各文字に定義されているビット パターンに基づいて、SQL ServerSQL Server テーブルのデータが並べ替えられ、比較されます。Sorts and compares data in SQL ServerSQL Server tables based on the bit patterns defined for each character. バイナリ並べ替え順では、大文字と小文字が区別され、アクセントが区別されます。Binary sort order is case-sensitive and accent-sensitive. また、バイナリは最速の並べ替え順です。Binary is also the fastest sorting order. 詳細については、この記事の「バイナリ照合順序」セクションを参照してください。For more information, see the Binary collations section in this article.
バイナリコード ポイント (_BIN2) 1Binary-code point (_BIN2)1 Unicode データの Unicode コード ポイントに基づいて、SQL ServerSQL Server テーブル内のデータが並べ替えられ、比較されます。Sorts and compares data in SQL ServerSQL Server tables based on Unicode code points for Unicode data. 非 Unicode データの場合、バイナリ コード ポイントではバイナリ並べ替えと同一の比較が使用されます。For non-Unicode data, Binary-code point uses comparisons that are identical to those for binary sorts.

バイナリ コード ポイント並べ替え順を使用すると、並べ替えられた SQL ServerSQL Server データを比較するアプリケーションでデータを再度並べ替える必要がないという利点があります。The advantage of using a Binary-code point sort order is that no data resorting is required in applications that compare sorted SQL ServerSQL Server data. このため、バイナリ コード ポイント並べ替え順を使用すると、アプリケーション開発が簡略化され、パフォーマンスを向上させることができます。As a result, a Binary-code point sort order provides simpler application development and possible performance increases. 詳細については、この記事の「バイナリ照合順序」セクションを参照してください。For more information, see the Binary collations section in this article.
UTF-8 (_UTF8)UTF-8 (_UTF8) UTF-8 でエンコードされたデータを SQL ServerSQL Server に格納できるようにします。Enables UTF-8 encoded data to be stored in SQL ServerSQL Server. このオプションを選択しなかった場合、SQL ServerSQL Server では、適用可能なデータ型に対して既定の非 Unicode エンコード形式が使用されます。If this option isn't selected, SQL ServerSQL Server uses the default non-Unicode encoding format for the applicable data types. 詳細については、この記事の「UTF-8 サポート」セクションを参照してください。For more information, see the UTF-8 Support section in this article.

1 バイナリまたはバイナリ コード ポイントが選択されている場合、大文字と小文字を区別する (_CS)、アクセントを区別する (_AS)、かなを区別する (_KS)、文字幅を区別する (_WS) オプションは使用できません。1 If Binary or Binary-code point is selected, the Case-sensitive (_CS), Accent-sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options are not available.

照合順序オプションの例Examples of collation options

各照合順序は、大文字小文字、アクセント、文字幅、かなの区別を定義する一連のサフィックスとして組み合わせられます。Each collation is combined as a series of suffixes to define case-, accent-, width-, or kana-sensitivity. 次の例で、サフィックスのさまざまな組み合わせに対応する並べ替え順の動作を説明します。The following examples describe sort order behavior for various combinations of suffixes.

Windows 照合順序サフィックスWindows collation suffix 並べ替え順の説明Sort order description
_BIN1_BIN1 バイナリ並べ替えBinary sort
_BIN21、2_BIN21, 2 バイナリコード ポイント並べ替え順Binary-code point sort order
_CI_AI2_CI_AI2 大文字小文字を区別しない、アクセントを区別しない、かなを区別しない、文字幅を区別しないCase-insensitive, accent-insensitive, kana-insensitive, width-insensitive
_CI_AI_KS2_CI_AI_KS2 大文字小文字を区別しない、アクセントを区別しない、かなを区別する、文字幅を区別しないCase-insensitive, accent-insensitive, kana-sensitive, width-insensitive
_CI_AI_KS_WS2_CI_AI_KS_WS2 大文字小文字を区別しない、アクセントを区別しない、かなを区別する、文字幅を区別するCase-insensitive, accent-insensitive, kana-sensitive, width-sensitive
_CI_AI_WS2_CI_AI_WS2 大文字小文字を区別しない、アクセントを区別しない、かなを区別しない、文字幅を区別するCase-insensitive, accent-insensitive, kana-insensitive, width-sensitive
_CI_AS2_CI_AS2 大文字小文字を区別しない、アクセントを区別する、かなを区別しない、文字幅を区別しないCase-insensitive, accent-sensitive, kana-insensitive, width-insensitive
_CI_AS_KS2_CI_AS_KS2 大文字小文字を区別しない、アクセントを区別する、かなを区別する、文字幅を区別しないCase-insensitive, accent-sensitive, kana-sensitive, width-insensitive
_CI_AS_KS_WS2_CI_AS_KS_WS2 大文字小文字を区別しない、アクセントを区別する、かなを区別する、文字幅を区別するCase-insensitive, accent-sensitive, kana-sensitive, width-sensitive
_CI_AS_WS2_CI_AS_WS2 大文字小文字を区別しない、アクセントを区別する、かなを区別しない、文字幅を区別するCase-insensitive, accent-sensitive, kana-insensitive, width-sensitive
_CS_AI2_CS_AI2 大文字小文字を区別する、アクセントを区別しない、かなを区別しない、文字幅を区別しないCase-sensitive, accent-insensitive, kana-insensitive, width-insensitive
_CS_AI_KS2_CS_AI_KS2 大文字小文字を区別する、アクセントを区別しない、かなを区別する、文字幅を区別しないCase-sensitive, accent-insensitive, kana-sensitive, width-insensitive
_CS_AI_KS_WS2_CS_AI_KS_WS2 大文字小文字を区別する、アクセントを区別しない、かなを区別する、文字幅を区別するCase-sensitive, accent-insensitive, kana-sensitive, width-sensitive
_CS_AI_WS2_CS_AI_WS2 大文字小文字を区別する、アクセントを区別しない、かなを区別しない、文字幅を区別するCase-sensitive, accent-insensitive, kana-insensitive, width-sensitive
_CS_AS2_CS_AS2 大文字小文字を区別する、アクセントを区別する、かなを区別しない、文字幅を区別しないCase-sensitive, accent-sensitive, kana-insensitive, width-insensitive
_CS_AS_KS2_CS_AS_KS2 大文字小文字を区別する、アクセントを区別する、かなを区別する、文字幅を区別しないCase-sensitive, accent-sensitive, kana-sensitive, width-insensitive
_CS_AS_KS_WS2_CS_AS_KS_WS2 大文字小文字を区別する、アクセントを区別する、かなを区別する、文字幅を区別するCase-sensitive, accent-sensitive, kana-sensitive, width-sensitive
_CS_AS_WS2_CS_AS_WS2 大文字小文字を区別する、アクセントを区別する、かなを区別しない、文字幅を区別するCase-sensitive, accent-sensitive, kana-insensitive, width-sensitive

1 バイナリまたはバイナリ コード ポイントが選択されている場合、大文字と小文字を区別する (_CS)、アクセントを区別する (_AS)、かなを区別する (_KS)、文字幅を区別する (_WS) オプションは使用できません。1 If Binary or Binary-code point is selected, the Case-sensitive (_CS), Accent-sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options aren't available.

2 UTF-8 オプション (_UTF8) を追加することで、UTF-8 を使用して Unicode データをエンコードできます。2 Adding the UTF-8 option (_UTF8) enables you to encode Unicode data by using UTF-8. 詳細については、この記事の「UTF-8 サポート」セクションを参照してください。For more information, see the UTF-8 Support section in this article.

照合順序セットCollation sets

SQL ServerSQL Server では、次の照合順序のセットをサポートしています。supports the following collation sets:

Windows 照合順序Windows collations

Windows 照合順序では、関連する Windows システム ロケールに基づく文字データを格納するための規則が定義されています。Windows collations define rules for storing character data that's based on an associated Windows system locale. Windows 照合順序では、非 Unicode データの比較を、Unicode データと同じアルゴリズムを使用して実装できます。For a Windows collation, you can implement a comparison of non-Unicode data by using the same algorithm as that for Unicode data. 基本の Windows 照合順序規則では、辞書順の並べ替えが適用される場合に使用されるアルファベットまたは言語が指定されています。The base Windows collation rules specify which alphabet or language is used when dictionary sorting is applied. また、規則では非 Unicode 文字データの格納に使用されるコード ページも指定されています。The rules also specify the code page that's used to store non-Unicode character data. Unicode 順の並べ替えと非 Unicode 順の並べ替えは、いずれも、特定のバージョンの Windows の文字列比較と互換性があります。Both Unicode and non-Unicode sorting are compatible with string comparisons in a particular version of Windows. このしくみによって SQL ServerSQL Server 内のデータ型に一貫性が生まれ、開発者が SQL ServerSQL Server と同一の規則を使用してアプリケーションで文字列を並べ替えることが可能になります。This provides consistency across data types within SQL ServerSQL Server, and it lets developers sort strings in their applications by using the same rules that are used by SQL ServerSQL Server. 詳細については、「Windows 照合順序名 (Transact-SQL)」を参照してください。For more information, see Windows Collation Name (Transact-SQL).

バイナリ照合順序Binary collations

バイナリ照合順序では、ロケールおよびデータ型によって定義されるコーディングされた値の順序に基づいてデータを並べ替えます。Binary collations sort data based on the sequence of coded values that are defined by the locale and data type. 大文字と小文字が区別されます。They're case-sensitive. SQL ServerSQL Server のバイナリ照合順序では、使用されるロケールおよび ANSI コード ページが定義されています。A binary collation in SQL ServerSQL Server defines the locale and the ANSI code page that's used. また、バイナリ並べ替え順を実施します。This enforces a binary sort order. これらは比較的単純なので、バイナリ照合順序はアプリケーションのパフォーマンスを向上させるために役立ちます。Because they're relatively simple, binary collations help improve application performance. 非 Unicode データ型の場合は、ANSI コード ページで定義されているコード ポイントに基づいてデータが比較されます。For non-Unicode data types, data comparisons are based on the code points that are defined on the ANSI code page. Unicode データ型の場合は、Unicode コード ポイントに基づいてデータが比較されます。For Unicode data types, data comparisons are based on the Unicode code points. Unicode データ型のバイナリ照合順序では、データを並べ替える際にロケールが考慮されません。For binary collations on Unicode data types, the locale isn't considered in data sorts. たとえば、Unicode データに対して Latin_1_General_BINJapanese_BIN を使用した場合、並べ替え結果はどちらも同じになります。For example, Latin_1_General_BIN and Japanese_BIN yield identical sorting results when they're used on Unicode data. 詳細については、「Windows 照合順序名 (Transact-SQL)」を参照してください。For more information, see Windows Collation Name (Transact-SQL).

SQL ServerSQL Server には、次の 2 種類のバイナリ照合順序があります。There are two types of binary collations in SQL ServerSQL Server:

  • 以前の BIN 照合順序では、Unicode データに対して不完全なコード ポイント間比較が行われていました。The legacy BIN collations, which performed an incomplete code-point-to-code-point comparison for Unicode data. 以前のこのようなバイナリ照合順序では、最初の文字が WCHAR として比較された後、続いてバイト単位の比較が行われていました。These legacy binary collations compared the first character as WCHAR, followed by a byte-by-byte comparison. BIN 照合順序では、最初の文字のみがコード ポイントに従って並べ替えられ、残りの文字はバイト値に従って並べ替えられます。In a BIN collation, only the first character is sorted according to the code point, and remaining characters are sorted according to their byte values.

  • 新しい BIN2 照合順序では、純粋なコード ポイント比較が実装されます。The newer BIN2 collations, which implement a pure code-point comparison. BIN2 照合順序では、すべての文字がコード ポイントに従って並べ替えられます。In a BIN2 collation, all characters are sorted according to their code points. Intel プラットフォームはリトル エンディアン アーキテクチャであるため、Unicode コード文字は常にバイト スワップして格納されます。Because the Intel platform is a little endian architecture, Unicode code characters are always stored byte-swapped.

SQL Server 照合順序SQL Server collations

SQL ServerSQL Server 照合順序 (SQL_*) では、以前のバージョンの SQL ServerSQL Server と互換性のある並べ替え順が使用されます。collations (SQL_*) provide sort order compatibility with earlier versions of SQL ServerSQL Server. 非 Unicode データについては、辞書順での並べ替え規則は Windows オペレーティング システムによって提供されるどの並べ替えルーチンとも互換性はありません。The dictionary sorting rules for non-Unicode data are incompatible with any sorting routine that's provided by Windows operating systems. ただし、Unicode データの並べ替えは、特定のバージョンの Windows 並べ替え規則と互換性があります。However, sorting Unicode data is compatible with a particular version of Windows sorting rules. SQL ServerSQL Server 照合順序では非 Unicode データと Unicode データで別々の比較規則を使用するため、基本となるデータ型によっては、同一データの比較で異なる結果が得られる場合があります。Because SQL ServerSQL Server collations use different comparison rules for non-Unicode and Unicode data, you see different results for comparisons of the same data, depending on the underlying data type. 詳細については、「SQL Server 照合順序名 (Transact-SQL)」を参照してください。For more information, see SQL Server Collation Name (Transact-SQL).

SQL ServerSQL Server セットアップ中、既定のインストール照合順序設定はオペレーティング システム (OS) ロケールによって決定されます。During SQL ServerSQL Server setup, the default installation collation setting is determined by the operating system (OS) locale. サーバーレベルの照合順序は、セットアップ中に変更するか、インストール前に OS ロケールを変更することで変更できます。You can change the server-level collation either during setup or by changing the OS locale before installation. 下位互換性のため、既定の照合順序は、特定のロケール別に関連付けられている中で最も古いバージョンに設定されます。For backward compatibility reasons, the default collation is set to the oldest available version that's associated with each specific locale. そのため、これが常に推奨される照合順序になるとは限りません。Therefore, this isn't always the recommended collation. SQL ServerSQL Server の機能を活用するには、Windows 照合順序を使用するように既定のインストール設定を変更します。To take full advantage of SQL ServerSQL Server features, change the default installation settings to use Windows collations. たとえば、OS のロケールが "英語 (米国)" (コード ページ 1252) の場合、セットアップ中、既定の照合順序は SQL_Latin1_General_CP1_CI_AS になります。これは Windows 照合順序でそれに最も近い Latin1_General_100_CI_AS_SC に変更できます。For example, for the OS locale "English (United States)" (code page 1252), the default collation during setup is SQL_Latin1_General_CP1_CI_AS, and it can be changed to its closest Windows collation counterpart, Latin1_General_100_CI_AS_SC.

注意

SQL ServerSQL Server の英語インスタンスをアップグレードするときに、SQL ServerSQL Server の既存インスタンスとの互換性のために SQL ServerSQL Server 照合順序 (SQL_*) を指定することができます。When you upgrade an English-language instance of SQL ServerSQL Server, you can specify SQL ServerSQL Server collations (SQL_*) for compatibility with existing instances of SQL ServerSQL Server. SQL ServerSQL Server のインスタンスの既定照合順序がセットアップ時に定義されるため、次の条件に該当する場合は、照合順序の設定を注意深く指定するようにしてください。Because the default collation for an instance of SQL ServerSQL Server is defined during setup, make sure that you specify the collation settings carefully when the following conditions are true:

  • アプリケーション コードが以前の SQL ServerSQL Server 照合順序の動作に依存している場合。Your application code depends on the behavior of previous SQL ServerSQL Server collations.
  • 複数の言語に対応する文字データを格納する必要がある場合。You must store character data that reflects multiple languages.

照合順序レベルCollation levels

照合順序の設定は、 SQL ServerSQL Serverのインスタンスの次のレベルでサポートされます。Setting collations are supported at the following levels of an instance of SQL ServerSQL Server:

サーバーレベルの照合順序Server-level collations

既定のサーバー照合順序は SQL ServerSQL Server のセットアップ時に決定され、システム データベースとすべてのユーザー データベースの既定の照合順序になります。The default server collation is determined during SQL ServerSQL Server setup, and it becomes the default collation of the system databases and all user databases.

次の表は、オペレーティング システム (OS) ロケールによって決定される既定の照合順序指定をまとめたものです。Windows と SQL 言語コード識別子 (LCID) が含まれています。The following table shows the default collation designations, as determined by the operating system (OS) locale, including their Windows and SQL Language Code Identifiers (LCID):

Windows ロケールWindows locale Windows LCIDWindows LCID SQL LCIDSQL LCID 既定の照合順序Default collation
アフリカーンス語 (南アフリカ)Afrikaans (South Africa) 0x04360x0436 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
アルバニア語 (アルバニア)Albanian (Albania) 0x041c0x041c 0x041c0x041c Albanian_CI_ASAlbanian_CI_AS
アルザス語 (フランス)Alsatian (France) 0x04840x0484 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
アムハラ語 (エチオピア)Amharic (Ethiopia) 0x045e0x045e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
アラビア語 (アルジェリア)Arabic (Algeria) 0x14010x1401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (バーレーン)Arabic (Bahrain) 0x3c010x3c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (エジプト)Arabic (Egypt) 0x0c010x0c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (イラク)Arabic (Iraq) 0x08010x0801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (ヨルダン)Arabic (Jordan) 0x2c010x2c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (クウェート)Arabic (Kuwait) 0x34010x3401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (レバノン)Arabic (Lebanon) 0x30010x3001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (リビア)Arabic (Libya) 0x10010x1001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (モロッコ)Arabic (Morocco) 0x18010x1801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (オマーン)Arabic (Oman) 0x20010x2001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (カタール)Arabic (Qatar) 0x40010x4001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (サウジアラビア)Arabic (Saudi Arabia) 0x04010x0401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (シリア)Arabic (Syria) 0x28010x2801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (チュニジア)Arabic (Tunisia) 0x1c010x1c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (U.A.E.)Arabic (U.A.E.) 0x38010x3801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アラビア語 (イエメン)Arabic (Yemen) 0x24010x2401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
アルメニア語 (アルメニア)Armenian (Armenia) 0x042b0x042b 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
アッサム語 (インド)Assamese (India) 0x044d0x044d 0x044d0x044d サーバー レベルでは利用できませんNot available at server level
アゼルバイジャン語 (アゼルバイジャン、キリル文字)Azeri (Azerbaijan, Cyrillic) 0x082c0x082c 0x082c0x082c 非推奨。サーバー レベルでは利用できませんDeprecated, not available at server level
アゼルバイジャン語 (アゼルバイジャン、ラテン文字)Azeri (Azerbaijan, Latin) 0x042c0x042c 0x042c0x042c 非推奨。サーバー レベルでは利用できませんDeprecated, not available at server level
バシキール語 (ロシア)Bashkir (Russia) 0x046d0x046d 0x046d0x046d Latin1_General_CI_AILatin1_General_CI_AI
バスク語 (バスク)Basque (Basque) 0x042d0x042d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ベラルーシ語 (ベラルーシ)Belarusian (Belarus) 0x04230x0423 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
ベンガル語 (バングラデシュ)Bengali (Bangladesh) 0x08450x0845 0x04450x0445 サーバー レベルでは利用できませんNot available at server level
ベンガル語 (インド)Bengali (India) 0x04450x0445 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
ボスニア語 (ボスニア・ヘルツェゴビナ、キリル文字)Bosnian (Bosnia and Herzegovina, Cyrillic) 0x201a0x201a 0x201a0x201a Latin1_General_CI_AILatin1_General_CI_AI
ボスニア語 (ボスニア・ヘルツェゴビナ、ラテン文字)Bosnian (Bosnia and Herzegovina, Latin) 0x141a0x141a 0x141a0x141a Latin1_General_CI_AILatin1_General_CI_AI
ブルトン語 (フランス)Breton (France) 0x047e0x047e 0x047e0x047e Latin1_General_CI_AILatin1_General_CI_AI
ブルガリア語 (ブルガリア)Bulgarian (Bulgaria) 0x04020x0402 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
カタルニア語 (カタルニア)Catalan (Catalan) 0x04030x0403 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
中国語 (中華人民共和国香港特別行政区)Chinese (Hong Kong SAR, PRC) 0x0c040x0c04 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
中国語 (中華人民共和国マカオ特別行政区)Chinese (Macao SAR) 0x14040x1404 0x14040x1404 Latin1_General_CI_AILatin1_General_CI_AI
中国語 (マカオ)Chinese (Macau) 0x214040x21404 0x214040x21404 Latin1_General_CI_AILatin1_General_CI_AI
中国語 (中華人民共和国)Chinese (PRC) 0x08040x0804 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
中国語 (中華人民共和国)Chinese (PRC) 0x208040x20804 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
中国語 (シンガポール)Chinese (Singapore) 0x10040x1004 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
中国語 (シンガポール)Chinese (Singapore) 0x210040x21004 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
中国語 (台湾)Chinese (Taiwan) 0x304040x30404 0x304040x30404 Chinese_Taiwan_Bopomofo_CI_ASChinese_Taiwan_Bopomofo_CI_AS
中国語 (台湾)Chinese (Taiwan) 0x04040x0404 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
コルシカ語 (フランス)Corsican (France) 0x04830x0483 0x04830x0483 Latin1_General_CI_AILatin1_General_CI_AI
クロアチア語 (ボスニア・ヘルツェゴビナ、ラテン文字)Croatian (Bosnia and Herzegovina, Latin) 0x101a0x101a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
クロアチア語 (クロアチア)Croatian (Croatia) 0x041a0x041a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
チェコ語 (チェコ共和国)Czech (Czech Republic) 0x04050x0405 0x04050x0405 Czech_CI_ASCzech_CI_AS
デンマーク語 (デンマーク)Danish (Denmark) 0x04060x0406 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
ダリー語 (アフガニスタン)Dari (Afghanistan) 0x048c0x048c 0x048c0x048c Latin1_General_CI_AILatin1_General_CI_AI
ディベヒ語 (モルディブ)Divehi (Maldives) 0x04650x0465 0x04650x0465 サーバー レベルでは利用できませんNot available at server level
オランダ語 (ベルギー)Dutch (Belgium) 0x08130x0813 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
オランダ語 (オランダ)Dutch (Netherlands) 0x04130x0413 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (オーストラリア)English (Australia) 0x0c090x0c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (ベリーズ)English (Belize) 0x28090x2809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (カナダ)English (Canada) 0x10090x1009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (カリブ)English (Caribbean) 0x24090x2409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (インド)English (India) 0x40090x4009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (アイルランド)English (Ireland) 0x18090x1809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (ジャマイカ)English (Jamaica) 0x20090x2009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (マレーシア)English (Malaysia) 0x44090x4409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (ニュージーランド)English (New Zealand) 0x14090x1409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (フィリピン)English (Philippines) 0x34090x3409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (シンガポール)English (Singapore) 0x48090x4809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (南アフリカ)English (South Africa) 0x1c090x1c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (トリニダード・トバゴ)English (Trinidad and Tobago) 0x2c090x2c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ウェールズ語 (イギリス)English (United Kingdom) 0x08090x0809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
英語 (米国)English (United States) 0x04090x0409 0x04090x0409 SQL_Latin1_General_CP1_CI_ASSQL_Latin1_General_CP1_CI_AS
英語 (ジンバブエ)English (Zimbabwe) 0x30090x3009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
エストニア語 (エストニア)Estonian (Estonia) 0x04250x0425 0x04250x0425 Estonian_CI_ASEstonian_CI_AS
フェロー語 (フェロー諸島)Faroese (Faroe Islands) 0x04380x0438 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
フィリピノ語 (フィリピン)Filipino (Philippines) 0x04640x0464 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
フィンランド語 (フィンランド)Finnish (Finland) 0x040b0x040b 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
フランス語 (ベルギー)French (Belgium) 0x080c0x080c 0x040c0x040c French_CI_ASFrench_CI_AS
フランス語 (カナダ)French (Canada) 0x0c0c0x0c0c 0x040c0x040c French_CI_ASFrench_CI_AS
フランス語 (フランス)French (France) 0x040c0x040c 0x040c0x040c French_CI_ASFrench_CI_AS
フランス語 (ルクセンブルク)French (Luxembourg) 0x140c0x140c 0x040c0x040c French_CI_ASFrench_CI_AS
フランス語 (モナコ)French (Monaco) 0x180c0x180c 0x040c0x040c French_CI_ASFrench_CI_AS
フランス語 (スイス)French (Switzerland) 0x100c0x100c 0x040c0x040c French_CI_ASFrench_CI_AS
フリジア語 (オランダ)Frisian (Netherlands) 0x04620x0462 0x04620x0462 Latin1_General_CI_AILatin1_General_CI_AI
ガリシア語 (スペイン)Galician (Spain) 0x04560x0456 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
グルジア語 (グルジア)Georgian (Georgia) 0x104370x10437 0x104370x10437 Georgian_Modern_Sort_CI_ASGeorgian_Modern_Sort_CI_AS
グルジア語 (グルジア)Georgian (Georgia) 0x04370x0437 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
ドイツ語 - 電話帳ソート (DIN)German - Phone Book Sort (DIN) 0x104070x10407 0x104070x10407 German_PhoneBook_CI_ASGerman_PhoneBook_CI_AS
ドイツ語 (オーストリア)German (Austria) 0x0c070x0c07 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ドイツ語 (ドイツ)German (Germany) 0x04070x0407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ドイツ語 (リヒテンシュタイン)German (Liechtenstein) 0x14070x1407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ドイツ語 (ルクセンブルク)German (Luxembourg) 0x10070x1007 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ドイツ語 (スイス)German (Switzerland) 0x08070x0807 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ギリシャ語 (ギリシャ)Greek (Greece) 0x04080x0408 0x04080x0408 Greek_CI_ASGreek_CI_AS
グリーンランド語 (グリーンランド)Greenlandic (Greenland) 0x046f0x046f 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
グジャラート語 (インド)Gujarati (India) 0x04470x0447 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
ハウサ語 (ナイジェリア、ラテン文字)Hausa (Nigeria, Latin) 0x04680x0468 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ヘブライ語 (イスラエル)Hebrew (Israel) 0x040d0x040d 0x040d0x040d Hebrew_CI_ASHebrew_CI_AS
ヒンディー語 (インド)Hindi (India) 0x04390x0439 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
ハンガリー語 (ハンガリー)Hungarian (Hungary) 0x040e0x040e 0x040e0x040e Hungarian_CI_ASHungarian_CI_AS
ハンガリー語 (技術的な並べ替え)Hungarian Technical Sort 0x1040e0x1040e 0x1040e0x1040e Hungarian_Technical_CI_ASHungarian_Technical_CI_AS
アイスランド語 (アイスランド)Icelandic (Iceland) 0x040f0x040f 0x040f0x040f Icelandic_CI_ASIcelandic_CI_AS
イボ語 (ナイジェリア)Igbo (Nigeria) 0x04700x0470 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
インドネシア語 (インドネシア)Indonesian (Indonesia) 0x04210x0421 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
イヌクティトット語 (カナダ、ラテン文字)Inuktitut (Canada, Latin) 0x085d0x085d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
イヌクティトット語 (音節文字) カナダInuktitut (Syllabics) Canada 0x045d0x045d 0x045d0x045d Latin1_General_CI_AILatin1_General_CI_AI
アイルランド語 (アイルランド)Irish (Ireland) 0x083c0x083c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
イタリア語 (イタリア)Italian (Italy) 0x04100x0410 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
イタリア語 (スイス)Italian (Switzerland) 0x08100x0810 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
日本語 (日本 XJIS)Japanese (Japan XJIS) 0x04110x0411 0x04110x0411 Japanese_CI_ASJapanese_CI_AS
日本語 (日本)Japanese (Japan) 0x0404110x040411 0x404110x40411 Latin1_General_CI_AILatin1_General_CI_AI
カンナダ語 (インド)Kannada (India) 0x044b0x044b 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
カザフ語 (カザフスタン)Kazakh (Kazakhstan) 0x043f0x043f 0x043f0x043f Kazakh_90_CI_ASKazakh_90_CI_AS
クメール語 (カンボジア)Khmer (Cambodia) 0x04530x0453 0x04530x0453 サーバー レベルでは利用できませんNot available at server level
キチェ語 (グアテマラ)K'iche (Guatemala) 0x04860x0486 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
キニヤルワンダ語 (ルワンダ)Kinyarwanda (Rwanda) 0x04870x0487 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
コーンクニー語 (インド)Konkani (India) 0x04570x0457 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
韓国語 (韓国語辞書並べ替え)Korean (Korea Dictionary Sort) 0x04120x0412 0x04120x0412 Korean_Wansung_CI_ASKorean_Wansung_CI_AS
キルギス語 (キルギスタン共和国)Kyrgyz (Kyrgyzstan) 0x04400x0440 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
ラオス語 (ラオス人民民主共和国)Lao (Lao PDR) 0x04540x0454 0x04540x0454 サーバー レベルでは利用できませんNot available at server level
ラトビア語 (ラトビア)Latvian (Latvia) 0x04260x0426 0x04260x0426 Latvian_CI_ASLatvian_CI_AS
リトアニア語 (リトアニア)Lithuanian (Lithuania) 0x04270x0427 0x04270x0427 Lithuanian_CI_ASLithuanian_CI_AS
下ソルブ語 (ドイツ)Lower Sorbian (Germany) 0x082e0x082e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ルクセンブルク語 (ルクセンブルク)Luxembourgish (Luxembourg) 0x046e0x046e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
マケドニア語 (マケドニア、FYROM)Macedonian (Macedonia, FYROM) 0x042f0x042f 0x042f0x042f Macedonian_FYROM_90_CI_ASMacedonian_FYROM_90_CI_AS
マレー語 (ブルネイ・ダルサラーム国)Malay (Brunei Darussalam) 0x083e0x083e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
マレー語 (マレーシア)Malay (Malaysia) 0x043e0x043e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
マラヤーラム語 (インド)Malayalam (India) 0x044c0x044c 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
マルタ語 (マルタ)Maltese (Malta) 0x043a0x043a 0x043a0x043a Latin1_General_CI_AILatin1_General_CI_AI
マオリ語 (ニュージーランド)Maori (New Zealand) 0x04810x0481 0x04810x0481 Latin1_General_CI_AILatin1_General_CI_AI
マプ語 (チリ)Mapudungun (Chile) 0x047a0x047a 0x047a0x047a Latin1_General_CI_AILatin1_General_CI_AI
マラーティー語 (インド)Marathi (India) 0x044e0x044e 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
モホーク語 (カナダ)Mohawk (Canada) 0x047c0x047c 0x047c0x047c Latin1_General_CI_AILatin1_General_CI_AI
モンゴル語 (モンゴル)Mongolian (Mongolia) 0x04500x0450 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
モンゴル語 (PRC)Mongolian (PRC) 0x08500x0850 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
ネパール語 (ネパール)Nepali (Nepal) 0x04610x0461 0x04610x0461 サーバー レベルでは利用できませんNot available at server level
ノルウェー語 (ブークモール、ノルウェー)Norwegian (Bokmål, Norway) 0x04140x0414 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
ノルウェー語 (ニーノシュク、ノルウェー)Norwegian (Nynorsk, Norway) 0x08140x0814 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
オクシタン語 (フランス)Occitan (France) 0x04820x0482 0x040c0x040c French_CI_ASFrench_CI_AS
オリヤー語 (インド)Oriya (India) 0x04480x0448 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
パシュトゥー語 (アフガニスタン)Pashto (Afghanistan) 0x04630x0463 0x04630x0463 サーバー レベルでは利用できませんNot available at server level
ペルシア語 (イラン)Persian (Iran) 0x04290x0429 0x04290x0429 Latin1_General_CI_AILatin1_General_CI_AI
ポーランド語 (ポーランド)Polish (Poland) 0x04150x0415 0x04150x0415 Polish_CI_ASPolish_CI_AS
ポルトガル語 (ブラジル)Portuguese (Brazil) 0x04160x0416 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ポルトガル語 (ポルトガル)Portuguese (Portugal) 0x08160x0816 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
パンジャーブ語 (インド)Punjabi (India) 0x04460x0446 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
ケチュア語 (ボリビア)Quechua (Bolivia) 0x046b0x046b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ケチュア語 (エクアドル)Quechua (Ecuador) 0x086b0x086b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ケチュア語 (ペルー)Quechua (Peru) 0x0c6b0x0c6b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ルーマニア語 (ルーマニア)Romanian (Romania) 0x04180x0418 0x04180x0418 Romanian_CI_ASRomanian_CI_AS
ロマンシュ語 (スイス)Romansh (Switzerland) 0x04170x0417 0x04170x0417 Latin1_General_CI_AILatin1_General_CI_AI
ロシア語 (ロシア)Russian (Russia) 0x04190x0419 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
サーミ語 (イナリ、フィンランド)Sami (Inari, Finland) 0x243b0x243b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (ルレ、ノルウェー)Sami (Lule, Norway) 0x103b0x103b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (ルレ、スウェーデン)Sami (Lule, Sweden) 0x143b0x143b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (北、フィンランド)Sami (Northern, Finland) 0x0c3b0x0c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (北、ノルウェー)Sami (Northern, Norway) 0x043b0x043b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (北、スウェーデン)Sami (Northern, Sweden) 0x083b0x083b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (スコルト、フィンランド)Sami (Skolt, Finland) 0x203b0x203b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (南、ノルウェー)Sami (Southern, Norway) 0x183b0x183b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
サーミ語 (南、スウェーデン)Sami (Southern, Sweden) 0x1c3b0x1c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
サンスクリット語 (インド)Sanskrit (India) 0x044f0x044f 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
セルビア語 (ボスニア・ヘルツェゴビナ、キリル文字)Serbian (Bosnia and Herzegovina, Cyrillic) 0x1c1a0x1c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
セルビア語 (ボスニア・ヘルツェゴビナ、ラテン文字)Serbian (Bosnia and Herzegovina, Latin) 0x181a0x181a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
セルビア語 (セルビア、キリル文字)Serbian (Serbia, Cyrillic) 0x0c1a0x0c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
セルビア語 (セルビア、ラテン文字)Serbian (Serbia, Latin) 0x081a0x081a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
セソト サ レボア語/北ソト語 (南アフリカ)Sesotho sa Leboa/Northern Sotho (South Africa) 0x046c0x046c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
セツワナ語/ツワナ語 (南アフリカ)Setswana/Tswana (South Africa) 0x04320x0432 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
シンハラ語 (スリランカ)Sinhala (Sri Lanka) 0x045b0x045b 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
スロバキア語 (スロバキア)Slovak (Slovakia) 0x041b0x041b 0x041b0x041b Slovak_CI_ASSlovak_CI_AS
スロベニア語 (スロベニア)Slovenian (Slovenia) 0x04240x0424 0x04240x0424 Slovenian_CI_ASSlovenian_CI_AS
スペイン語 (アルゼンチン)Spanish (Argentina) 0x2c0a0x2c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (ボリビア)Spanish (Bolivia) 0x400a0x400a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (チリ)Spanish (Chile) 0x340a0x340a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (コロンビア)Spanish (Colombia) 0x240a0x240a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (コスタリカ)Spanish (Costa Rica) 0x140a0x140a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (ドミニカ共和国)Spanish (Dominican Republic) 0x1c0a0x1c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (エクアドル)Spanish (Ecuador) 0x300a0x300a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (エルサルバドル)Spanish (El Salvador) 0x440a0x440a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (グアテマラ)Spanish (Guatemala) 0x100a0x100a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (ホンジュラス)Spanish (Honduras) 0x480a0x480a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (メキシコ)Spanish (Mexico) 0x080a0x080a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (ニカラグア)Spanish (Nicaragua) 0x4c0a0x4c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (パナマ)Spanish (Panama) 0x180a0x180a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (パラグアイ)Spanish (Paraguay) 0x3c0a0x3c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (ペルー)Spanish (Peru) 0x280a0x280a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (プエルトリコ)Spanish (Puerto Rico) 0x500a0x500a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (スペイン)Spanish (Spain) 0x0c0a0x0c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (スペイン、トラディショナル ソート)Spanish (Spain, Traditional Sort) 0x040a0x040a 0x040a0x040a Traditional_Spanish_CI_ASTraditional_Spanish_CI_AS
スペイン語 (米国)Spanish (United States) 0x540a0x540a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
スペイン語 (ウルグアイ)Spanish (Uruguay) 0x380a0x380a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スペイン語 (ベネズエラ)Spanish (Venezuela) 0x200a0x200a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
スワヒリ語 (ケニア)Swahili (Kenya) 0x04410x0441 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
スウェーデン語 (フィンランド)Swedish (Finland) 0x081d0x081d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
スウェーデン語 (スウェーデン)Swedish (Sweden) 0x041d0x041d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
シリア語 (シリア)Syriac (Syria) 0x045a0x045a 0x045a0x045a サーバー レベルでは利用できませんNot available at server level
タジク語 (タジキスタン)Tajik (Tajikistan) 0x04280x0428 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
タマジット語 (アルジェリア、ラテン文字)Tamazight (Algeria, Latin) 0x085f0x085f 0x085f0x085f Latin1_General_CI_AILatin1_General_CI_AI
タミール語 (インド)Tamil (India) 0x04490x0449 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
タタール語 (ロシア)Tatar (Russia) 0x04440x0444 0x04440x0444 Cyrillic_General_CI_ASCyrillic_General_CI_AS
テルグ語 (インド)Telugu (India) 0x044a0x044a 0x04390x0439 サーバー レベルでは利用できませんNot available at server level
タイ語 (タイ)Thai (Thailand) 0x041e0x041e 0x041e0x041e Thai_CI_ASThai_CI_AS
チベット語 (PRC)Tibetan (PRC) 0x04510x0451 0x04510x0451 サーバー レベルでは利用できませんNot available at server level
トルコ語 (トルコ)Turkish (Turkey) 0x041f0x041f 0x041f0x041f Turkish_CI_ASTurkish_CI_AS
トルクメン語 (トルクメニスタン)Turkmen (Turkmenistan) 0x04420x0442 0x04420x0442 Latin1_General_CI_AILatin1_General_CI_AI
ウイグル語 (PRC)Uighur (PRC) 0x04800x0480 0x04800x0480 Latin1_General_CI_AILatin1_General_CI_AI
ウクライナ語 (ウクライナ)Ukrainian (Ukraine) 0x04220x0422 0x04220x0422 Ukrainian_CI_ASUkrainian_CI_AS
上ソルブ語 (ドイツ)Upper Sorbian (Germany) 0x042e0x042e 0x042e0x042e Latin1_General_CI_AILatin1_General_CI_AI
ウルドゥー語 (パキスタン)Urdu (Pakistan) 0x04200x0420 0x04200x0420 Latin1_General_CI_AILatin1_General_CI_AI
ウズベク語 (ウズベキスタン、キリル文字)Uzbek (Uzbekistan, Cyrillic) 0x08430x0843 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
ウズベク語 (ウズベキスタン、ラテン文字)Uzbek (Uzbekistan, Latin) 0x04430x0443 0x04430x0443 Uzbek_Latin_90_CI_ASUzbek_Latin_90_CI_AS
ベトナム語 (ベトナム)Vietnamese (Vietnam) 0x042a0x042a 0x042a0x042a Vietnamese_CI_ASVietnamese_CI_AS
ウェールズ語 (イギリス)Welsh (United Kingdom) 0x04520x0452 0x04520x0452 Latin1_General_CI_AILatin1_General_CI_AI
ウォロフ語 (セネガル)Wolof (Senegal) 0x04880x0488 0x040c0x040c French_CI_ASFrench_CI_AS
コサ語 (南アフリカ)Xhosa/isiXhosa (South Africa) 0x04340x0434 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ヤクート語 (ロシア)Yakut (Russia) 0x04850x0485 0x04850x0485 Latin1_General_CI_AILatin1_General_CI_AI
イ語 (PRC)Yi (PRC) 0x04780x0478 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ヨルバ語 (ナイジェリア)Yoruba (Nigeria) 0x046a0x046a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
ズールー語 (南アフリカ)Zulu/isiZulu (South Africa) 0x04350x0435 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS

注意

Unicode 専用の照合順序はサーバーレベルの照合順序としてサポートされないため、SQL ServerSQL Server のセットアップ時に選択することはできません。Unicode-only collations can't be selected during SQL ServerSQL Server setup, because they aren't supported as server-level collations.

サーバーに照合順序を割り当てた後は、照合順序を簡単には変更できません。変更するには、すべてのデータベース オブジェクトとデータをエクスポートし、master データベースを再構築してから、すべてのデータベース オブジェクトとデータをインポートする必要があります。After you've assigned a collation to the server, you can change it only by exporting all database objects and data, rebuilding the master database, and importing all database objects and data. SQL ServerSQL Server のインスタンスの既定の照合順序を変更する代わりに、新しいデータベースまたはデータベース列の作成時に、目的の照合順序を指定することができます。Instead of changing the default collation of an instance of SQL ServerSQL Server, you can specify the desired collation when you create a new database or database column.

SQL ServerSQL Server のインスタンスのサーバー照合順序を問い合わせるには、SERVERPROPERTY 関数を使用します。To query the server collation for an instance of SQL ServerSQL Server, use the SERVERPROPERTY function:

SELECT CONVERT(varchar, SERVERPROPERTY('collation'));

使用可能なすべての照合順序についてサーバーに照会するには、次の fn_helpcollations() 組み込み関数を使用します。To query the server for all available collations, use the following fn_helpcollations() built-in function:

SELECT * FROM sys.fn_helpcollations();

データベースレベルの照合順序Database-level collations

データベースを作成または変更するときに、CREATE DATABASE または ALTER DATABASE ステートメントの COLLATE 句を使用して、データベースの既定の照合順序を指定できます。When you create or modify a database, you can use the COLLATE clause of the CREATE DATABASE or ALTER DATABASE statement to specify the default database collation. 照合順序が指定されない場合、データベースにはサーバーの照合順序が割り当てられます。If no collation is specified, the database is assigned the server collation.

サーバーの照合順序を変更する以外に、システム データベースの照合順序を変更する方法はありません。You can't change the collation of system databases unless you change the collation for the server.

データベースの照合順序は、データベース内のすべてのメタデータで使用され、データベース内で使用されるすべての文字列型の列、一時オブジェクト、変数名、およびその他のすべての文字列の既定値になります。The database collation is used for all metadata in the database, and the collation is the default for all string columns, temporary objects, variable names, and any other strings used in the database. ユーザー データベースの照合順序を変更する場合は、データベースのクエリが一時テーブルにアクセスするときに照合順序が競合する可能性があります。When you change the collation of a user database, there can be collation conflicts when queries in the database access temporary tables. 一時テーブルは常に tempdb システム データベースに格納され、このデータベースではインスタンスの照合順序が使用されます。Temporary tables are always stored in the tempdb system database, which uses the collation for the instance. ユーザー データベースと tempdb の文字データを比較するクエリは、文字データの評価で照合順序が競合すると、失敗します。Queries that compare character data between the user database and tempdb might fail if the collations cause a conflict in evaluating the character data. この問題は、クエリで COLLATE 句を指定することにより解決できます。You can resolve this issue by specifying the COLLATE clause in the query. 詳細については、「COLLATE (Transact-SQL)」を参照してください。For more information, see COLLATE (Transact-SQL).

注意

Azure SQL データベースAzure SQL Database でデータベースを作成した後は、照合順序を変更できません。You can't change the collation after the database has been created on Azure SQL データベースAzure SQL Database.

ユーザー データベースの照合順序は、次のような ALTER DATABASE ステートメントを使用して変更できます。You can change the collation of a user database by using an ALTER DATABASE statement that's similar to the following:

ALTER DATABASE myDB COLLATE Greek_CS_AI;

重要

データベース レベルの照合順序を変更しても、列レベルの照合順序や式レベルの照合順序には影響しません。Altering the database-level collation doesn't affect column-level or expression-level collations.

データベースの現在の照合順序は、次のようなステートメントを使用して取得できます。You can retrieve the current collation of a database by using a statement that's similar to the following:

SELECT CONVERT (VARCHAR(50), DATABASEPROPERTYEX('database_name','collation'));

列レベルの照合順序Column-level collations

テーブルを作成または変更するときに、COLLATE 句を使用して、文字列型の各列に対して照合順序を指定できます。When you create or alter a table, you can specify collations for each character-string column by using the COLLATE clause. 照合順序を指定しない場合、列には、データベースの既定の照合順序が指定されます。If you don't specify a collation, the column is assigned the default collation of the database.

列の照合順序は、次のような ALTER TABLE ステートメントを使用して変更できます。You can change the collation of a column by using an ALTER TABLE statement that's similar to the following:

ALTER TABLE myTable ALTER COLUMN mycol NVARCHAR(10) COLLATE Greek_CS_AI;

式レベルの照合順序Expression-level collations

式レベルの照合順序は、ステートメントの実行時に設定され、結果セットが返される方法に影響を及ぼします。Expression-level collations are set when a statement is run, and they affect the way a result set is returned. これにより、ORDER BY の並べ替え結果をロケール固有のものにすることができます。This enables ORDER BY sort results to be locale-specific. 式レベルの照合順序を実装するには、次のような COLLATE 句を使用します。To implement expression-level collations, use a COLLATE clause such as the following:

SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI;    

ロケールLocale

ロケールは、場所またはカルチャに関連付けられる一連の情報です。A locale is a set of information that's associated with a location or a culture. その情報には、言語の名前や ID、言語の記述に使用される文字表記、文化的慣習などが含まれる場合があります。The information can include the name and identifier of the spoken language, the script that's used to write the language, and cultural conventions. 照合順序は、1 つ以上のロケールに関連付けることができます。Collations can be associated with one or more locales. 詳細については、「 Microsoft によって割り当てられているロケール ID」を参照してください。For more information, see Locale IDs Assigned by Microsoft.

コード ページCode page

コード ページは、特定の文字表記の順序付けられた文字のセットです。コード ページでは、数値インデックス (コード ポイント値) が各文字に関連付けられます。A code page is an ordered set of characters of a given script in which a numeric index, or code point value, is associated with each character. Windows コード ページは、通常は "文字セット" または charset と呼ばれています。A Windows code page is typically referred to as a character set or a charset. コード ページは、各種の Windows システム ロケールで使用される文字セットおよびキーボード レイアウトをサポートするために使用されます。Code pages are used to provide support for the character sets and keyboard layouts that are used by different Windows system locales.

並べ替え順序Sort order

並べ替え順序は、データ値の並べ替え方法を指定します。Sort order specifies how data values are sorted. その順序により、データ比較の結果が影響を受けます。The order affects the results of data comparison. データは、照合順序を使用して並べ替えられ、インデックスを使用して最適化することができます。Data is sorted by using collations, and it can be optimized by using indexes.

Unicode のサポートUnicode support

Unicode は、コード ポイントを文字にマップするための標準です。Unicode is a standard for mapping code points to characters. Unicode は世界中のすべての言語のすべての文字を処理できるようにデザインされているので、異なる文字のセットを扱うために異なるコード ページは必要ありません。Because it's designed to cover all the characters of all the languages of the world, you don't need different code pages to handle different sets of characters.

Unicode の基礎Unicode basics

1 つのデータベースに複数言語のデータを格納する場合、文字データとコード ページのみを使用すると、管理が困難になります。Storing data in multiple languages within one database is difficult to manage when you use only character data and code pages. また、データベース用に必要なすべての言語固有の文字を格納できる、単一のコード ページを見つけることも困難です。It's also difficult to find one code page for the database that can store all the required language-specific characters. さらに、さまざまなコード ページを実行するさまざまなクライアントによって読み取りや更新が行われるときに、特殊な文字が正しく翻訳されるようにすることも困難です。Additionally, it's difficult to guarantee the correct translation of special characters when they're being read or updated by a variety of clients that are running various code pages. さまざまな国のクライアントをサポートするデータベースでは、非 Unicode データ型ではなく常に Unicode データ型を使用する必要があります。Databases that support international clients should always use Unicode data types instead of non-Unicode data types.

たとえば、次の 3 つの主要言語を扱う必要がある北米の顧客データベースについて考えてみましょう。For example, consider a database of customers in North America that must handle three major languages:

  • メキシコ向けのスペイン語の名前と住所Spanish names and addresses for Mexico
  • ケベック向けのフランス語の名前と住所French names and addresses for Quebec
  • カナダの他の地域と米国向けの英語の名前と住所English names and addresses for the rest of Canada and the United States

文字型の列とコード ページのみを使用するときは、3 つの言語すべての文字を処理できるコード ページを使用してデータベースが確実にインストールされるようにする必要があります。When you use only character columns and code pages, you must take care to ensure that the database is installed with a code page that will handle the characters of all three languages. また、上記の中のいずれかの言語の文字が、別の言語のコード ページを実行しているクライアントで読み取られる場合は、その文字が正しく変換されるように注意する必要があります。You must also take care to guarantee the correct translation of characters from any of the languages when the characters are read by clients that are running a code page for another language.

注意

クライアントが使用するコード ページは、オペレーティング システム (OS) の設定によって決まります。The code pages that a client uses are determined by the operating system (OS) settings. Windows オペレーティング システムでクライアント コード ページを設定するには、コントロール パネルの [地域と言語のオプション] を使用します。To set client code pages on the Windows operating system, use Regional Settings in Control Panel.

世界中のユーザーが要求するすべての文字をサポートする文字データ型のコード ページを 1 つ選択することは困難です。It would be difficult to select a code page for character data types that will support all the characters that are required by a worldwide audience. 国をまたぐデータベースで文字データを管理する最も簡単な方法は、Unicode をサポートするデータ型を常に使用することです。The easiest way to manage character data in international databases is to always use a data type that supports Unicode.

Unicode データ型Unicode data types

複数の言語を反映する文字データを SQL ServerSQL Server (SQL Server 2005 (9.x)SQL Server 2005 (9.x) から SQL Server 2017SQL Server 2017) に格納する場合は、非 Unicode データ型 (charvarchartext) ではなく、Unicode データ型 (ncharnvarcharntext) を使用してください。If you store character data that reflects multiple languages in SQL ServerSQL Server (SQL Server 2005 (9.x)SQL Server 2005 (9.x) through SQL Server 2017SQL Server 2017), use Unicode data types (nchar, nvarchar, and ntext) instead of non-Unicode data types (char, varchar, and text).

注意

Unicode データ型の場合、データベース エンジンDatabase Engineでは、UCS-2 を使うと最大 65,535 文字を表すことができ、補助文字を使った場合は Unicode の全範囲 (1,114,111 文字) を表すことができます。For Unicode data types, the データベース エンジンDatabase Engine can represent up to 65,535 characters using UCS-2, or the full Unicode range (‭1,114,111‬ characters) if supplementary characters are used. 補助文字の有効化について詳しくは、「補助文字」をご覧ください。For more information about enabling supplementary characters, see Supplementary Characters.

代わりに、SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降では、UTF 8 対応の照合順序 (_UTF8) を使用した場合、以前の非 Unicode データ型 (charvarchar) が Unicode (UTF-8) データ型になります。Alternatively, starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x), if a UTF-8 enabled collation (_UTF8) is used, previously non-Unicode data types (char and varchar) become Unicode (UTF-8) data types. SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、以前の既存の Unicode (UTF-16) データ型 (ncharnvarcharntext) の動作は変わりません。doesn't change the behavior of previously existing Unicode (UTF-16) data types (nchar, nvarchar, and ntext). 詳しくは、「UTF-8 と UTF-16 でのストレージの相違点」をご覧ください。For more information, see Storage differences between UTF-8 and UTF-16.

Unicode の注意点Unicode considerations

非 Unicode データ型には、多くの制限が関連付けられています。Significant limitations are associated with non-Unicode data types. これは、Unicode に対応していないコンピューターではコード ページの使用が 1 つに制限されているためです。This is because a non-Unicode computer is limited to using a single code page. Unicode コードを使用すると、必要なコード ページ変換が少なくなるので、パフォーマンスの向上が期待できます。You might experience performance gain by using Unicode, because it requires fewer code-page conversions. Unicode 照合順序は、サーバー レベルではサポートされないため、データベース、列、式の各レベルで個別に選択する必要があります。Unicode collations must be selected individually at the database, column, or expression level because they aren't supported at the server level.

データをサーバーからクライアントに移動するとき、古いクライアント ドライバーでサーバー照合順序が認識されないことがあります。When you move data from a server to a client, your server collation might not be recognized by older client drivers. これは、データを Unicode サーバーから非 Unicode クライアントに移動する場合に発生する可能性があります。This can occur when you move data from a Unicode server to a non-Unicode client. 最善の対処方法は、クライアント オペレーティング システムをアップグレードして、基になるシステムの照合順序を更新することです。Your best option might be to upgrade the client operating system so that the underlying system collations are updated. クライアントにデータベース クライアント ソフトウェアがインストールされている場合は、データベース クライアント ソフトウェアにサービスの更新プログラムを適用する方法もあります。If the client has database client software installed, you might consider applying a service update to the database client software.

ヒント

また、サーバー上のデータに異なる照合順序を使用してみることもできます。You can also try to use a different collation for the data on the server. クライアントのコード ページにマップする照合順序を選択します。Choose a collation that maps to a code page on the client.

一部の Unicode 文字の検索と並べ替えの機能を向上させるために SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017) で使用可能な UTF-16 照合順序を使用するには (Windows 照合順序のみ)、補助文字 (_SC) の照合順序の 1 つ、またはバージョン 140 の照合順序の 1 つを選択できます。To use the UTF-16 collations that are available in SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017) to improve searching and sorting of some Unicode characters (Windows collations only), you can select either one of the supplementary characters (_SC) collations or one of the version 140 collations.

SQL Server 2019 (15.x)SQL Server 2019 (15.x) で使用可能な UTF-8 照合順序を使用し、一部の Unicode 文字の検索と並べ替えの機能を向上させるには (Windows 照合順序のみ)、UTF-8 エンコード対応の照合順序 (_UTF8) を選択する必要があります。To use the UTF-8 collations that are available in SQL Server 2019 (15.x)SQL Server 2019 (15.x), and to improve searching and sorting of some Unicode characters (Windows collations only), you must select UTF-8 encoding-enabled collations(_UTF8).

  • UTF8 フラグは、以下に適用できます。The UTF8 flag can be applied to:

    • バージョン 90 照合順序Version 90 collations

      注意

      補助文字 (_SC) または異体字セレクター (_VSS) を区別する照合順序がこのバージョンに既に存在している場合に限られます。Only when supplementary characters (_SC) or variation-selector-sensitive (_VSS) aware collations already exist in this version.

    • バージョン 100 照合順序Version 100 collations
    • バージョン 140 照合順序Version 140 collations
    • BIN21 バイナリ照合順序BIN21 binary collation
  • UTF8 フラグは、以下には適用できません。The UTF8 flag can't be applied to:

    • 補助文字 (_SC) または異体字セレクター (_VSS) をサポートしていないバージョン 90 照合順序Version 90 collations that don't support supplementary characters (_SC) or variation-selector-sensitive (_VSS)
    • BIN または BIN22 バイナリ照合順序The BIN or BIN22 binary collations
    • SQL_* 照合順序The SQL_* collations

1 SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3 以降。1 Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3. SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 では、照合順序 UTF8_BIN2Latin1_General_100_BIN2_UTF8 に置き換えられました。CTP 3.0 replaced collation UTF8_BIN2 with Latin1_General_100_BIN2_UTF8.
2 SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3 まで。2 Up to with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.

Unicode または非 Unicode データ型の使用に関連する問題点を評価するには、使用環境におけるパフォーマンスの違いを測定するためのシナリオをテストする必要があります。To evaluate issues that are related to using Unicode or non-Unicode data types, test your scenario to measure performance differences in your environment. 組織内のシステムで使用する照合順序を標準化し、可能であれば Unicode サーバーおよびクライアントを配置するようにしてください。It's a good practice to standardize the collation that's used on systems across your organization, and to deploy Unicode servers and clients wherever possible.

さまざまな状況で、SQL ServerSQL Server によって他のサーバーまたはクライアントとのやり取りが行われ、組織ではアプリケーションやサーバー インスタンス間で複数のデータ アクセス標準を使用する可能性があります。In many situations, SQL ServerSQL Server interacts with other servers or clients, and your organization might use multiple data-access standards between applications and server instances. SQL ServerSQL Server クライアントは次の 2 つの主要タイプのいずれかになります。clients are one of two main types:

  • OLE DB および Open Database Connectivity (ODBC) バージョン 3.7 以降を使用する Unicode クライアントUnicode clients that use OLE DB and Open Database Connectivity (ODBC) version 3.7 or later.
  • DB ライブラリおよび ODBC バージョン 3.6 以前を使用する非 Unicode クライアントNon-Unicode clients that use DB-Library and ODBC version 3.6 or earlier.

以下の表では、Unicode 型サーバーと非 Unicode 型サーバーの各種の組み合わせにおける多言語データの使用に関する情報を示します。The following table provides information about using multilingual data with various combinations of Unicode and non-Unicode servers:

[サーバー]Server クライアントClient 利点または制限事項Benefits or limitations
UnicodeUnicode UnicodeUnicode このシナリオでは、システム全体で Unicode データが使用されるため、最高のパフォーマンスが実現され、取得されるデータが破損から保護されます。Because Unicode data is used throughout the system, this scenario provides the best performance and protection from corruption of retrieved data. これは、ActiveX Data Objects (ADO)、OLE DB、および ODBC バージョン 3.7 以降の場合に該当します。This is the situation with ActiveX Data Objects (ADO), OLE DB, and ODBC version 3.7 or later.
UnicodeUnicode 非 UnicodeNon-Unicode このシナリオで、特に新しいオペレーティング システムを実行しているサーバーと、古いバージョンの SQL ServerSQL Server または古いオペレーティング システムを実行しているクライアントが接続されている場合、データをクライアント コンピューターに移動するときに制約やエラーが発生することがあります。In this scenario, especially with connections between a server that's running a newer operating system and a client that's running an earlier version of SQL ServerSQL Server, or on an older operating system, there can be limitations or errors when you move data to a client computer. サーバー上の Unicode データは、非 Unicode クライアント上の対応するコード ページにマップしてデータを変換しようと試みます。Unicode data on the server tries to map to a corresponding code page on the non-Unicode client to convert the data.
非 UnicodeNon-Unicode UnicodeUnicode これは、多言語データの使用に理想的な構成とはいえません。This isn't an ideal configuration for using multilingual data. Unicode データを非 Unicode サーバーに書き込むことはできません。You can't write Unicode data to the non-Unicode server. サーバーのコード ページ内に存在しないサーバーにデータを送信すると、問題が発生する可能性があります。Problems are likely to occur when data is sent to servers that are outside the server's code page.
非 UnicodeNon-Unicode 非 UnicodeNon-Unicode これは、多言語データに関して非常に制限的なシナリオです。This is a very limiting scenario for multilingual data. 使用できるコード ページは 1 つだけです。You can use only a single code page.

補助文字Supplementary characters

Unicode Consortium では、各文字に一意のコード ポイント (000000 – 10FFFF の範囲の値) が割り当てられています。The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. 最もよく使われる文字のコード ポイント値は 000000 – 00FFFF の範囲で (65,535 文字)、これはメモリおよびディスク上の 8 ビットまたは 16 ビット ワードに適合します。The most frequently used characters have code point values in the range 000000–00FFFF (65,535 characters) which fit into an 8-bit or 16-bit word in memory and on-disk. この範囲は、通常、基本多言語面 (BMP) として指定されます。This range is usually designated as the Basic Multilingual Plane (BMP).

ただし、Unicode Consortium では、さらに 16 個の文字の "面" が確立されており、それぞれ BMP と同じサイズです。But the Unicode Consortium has established 16 additional "planes" of characters, each the same size as the BMP. この定義により、Unicode では、000000 – 10FFFF までのコード ポイントで 1,114,112 個の文字 (つまり、216 * 17 文字) を表すことができます。This definition allows Unicode the potential to represent 1,114,112 characters (that is, 216 * 17 characters) within the code point range 000000–10FFFF. コード ポイント値が 00FFFF より大きい文字では、2 から 4 個の連続する 8 ビット ワード (UTF-8)、または 2 個の連続する 16 ビット ワード (UTF-16) が必要です。Characters with code point values larger than 00FFFF require two to four consecutive 8-bit words (UTF-8), or two consecutive 16-bit words (UTF-16). BMP を越えて存在するこれらの文字は "補助文字" と呼ばれ、追加の連続する 8 ビット ワードまたは 16 ビット ワードは "サロゲート ペア" と呼ばれます。These characters located beyond the BMP are called supplementary characters, and the additional consecutive 8-bit or 16-bit words are called surrogate pairs. 補助文字、サロゲート、およびサロゲート ペアについて詳しくは、Unicode 標準をご覧ください。For more information about supplementary characters, surrogates, and surrogate pairs, refer to the Unicode Standard.

SQL ServerSQL Server では、BMP 範囲 (000000 – 00FFFF) の Unicode データを格納するために、ncharnvarchar などのデータ型が提供されています。これらは、データベース エンジンDatabase Engineでは UCS-2 を使ってエンコードされます。provides data types such as nchar and nvarchar to store Unicode data in the BMP range (000000–00FFFF), which the データベース エンジンDatabase Engine encodes using UCS-2.

SQL Server 2012 (11.x)SQL Server 2012 (11.x) では、完全な Unicode 文字範囲 (000000 – 10FFFF) を表すために、ncharnvarcharsql_variant の各データ型で使用できる補助文字 (_SC) 照合順序の新しいファミリが導入されました。introduced a new family of supplementary character (_SC) collations that can be used with the nchar, nvarchar, and sql_variant data types to represent the full Unicode character range (000000–10FFFF). 例:Latin1_General_100_CI_AS_SC や、日本語の照合順序を使用する場合は Japanese_Bushu_Kakusu_100_CI_AS_SC を使用できます。For example: Latin1_General_100_CI_AS_SC or, if you're using a Japanese collation, Japanese_Bushu_Kakusu_100_CI_AS_SC.

SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、新しい UTF-8 対応の照合順序 (_UTF8) を使用して、補助文字のサポートが char および varchar データ型まで拡張されています。extends supplementary character support to the char and varchar data types with the new UTF-8 enabled collations (_UTF8). これらのデータ型では、完全な Unicode 文字範囲を表すこともできます。These data types are also capable of representing the full Unicode character range.

注意

SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降では、すべての新しい _140 照合順序で補助文字が自動的にサポートされます。Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x), all new _140 collations automatically support supplementary characters.

補助文字を使用する場合は、以下の点に注意してください。If you use supplementary characters:

  • 補助文字は、90 以上の照合順序バージョンで、並べ替えと比較の操作に使用できます。Supplementary characters can be used in ordering and comparison operations in collation versions 90 or greater.

  • すべてのバージョン 100 の照合順序で、補助文字の言語的な並べ替えがサポートされています。All version 100 collations support linguistic sorting with supplementary characters.

  • 補助文字は、データベース オブジェクトの名前など、メタデータ内で使用することはできません。Supplementary characters aren't supported for use in metadata, such as in names of database objects.

  • 補助文字 (_SC) を含む照合順序を使用しているデータベースでは、SQL ServerSQL Server レプリケーションを有効にすることはできません。Databases that use collations with supplementary characters (_SC) can't be enabled for SQL ServerSQL Server Replication. これは、レプリケーション用に作成されるシステム テーブルとストアド プロシージャの一部で、補助文字をサポートしていない古い ntext データ型が使われているためです。This is because some of the system tables and stored procedures that are created for replication use the legacy ntext data type, which doesn't support supplementary characters.

  • SC フラグは、以下に適用できます。The SC flag can be applied to:

    • バージョン 90 照合順序Version 90 collations
    • バージョン 100 照合順序Version 100 collations
  • SC フラグは、以下に適用できます。The SC flag can't be applied to:

    • バージョン 80 バージョンなしの Windows 照合順序Version 80 non-versioned Windows collations
    • BIN または BIN2 バイナリ照合順序The BIN or BIN2 binary collations
    • SQL* 照合順序The SQL* collations
    • バージョン 140 照合順序 (これらでは、補助文字が既にサポートされているので、SC フラグは必要ありません)Version 140 collations (these don't need the SC flag, because they already support supplementary characters)

次の表では、一部の文字列関数と文字列演算子で、補助文字が SC 照合順序ありで使用される場合と、補助文字対応 (SCA) 照合順序なしで使用される場合の動作を比較しています。The following table compares the behavior of some string functions and string operators when they use supplementary characters with and without a supplementary character-aware (SCA) collation:

文字列関数または演算子String function or operator SCA 照合順序ありWith an SCA collation SCA 照合順序なしWithout an SCA collation
CHARINDEXCHARINDEX

LENLEN

PATINDEXPATINDEX
UTF-16 サロゲート ペアは、1 つのコード ポイントとしてカウントされます。The UTF-16 surrogate pair is counted as a single code point. UTF-16 サロゲート ペアは、2 つのコード ポイントとしてカウントされます。The UTF-16 surrogate pair is counted as two code points.
LEFTLEFT

REPLACEREPLACE

REVERSEREVERSE

RIGHTRIGHT

SUBSTRINGSUBSTRING

STUFFSTUFF
これらの関数は、各サロゲート ペアを 1 つのコード ポイントとして処理し、期待どおりに動作します。These functions treat each surrogate pair as a single code point and work as expected. これらの関数では、サロゲート ペアが分割され、予期しない結果が生じることがあります。These functions might split any surrogate pairs and lead to unexpected results.
NCHARNCHAR 0 – 0x10FFFF の範囲の指定した Unicode コード ポイント値に対応する文字が返されます。Returns the character that corresponds to the specified Unicode code point value in the range 0–0x10FFFF. 指定した値が 0 – 0xFFFF の範囲内にある場合、1 つの文字が返されます。If the specified value lies in the range 0–0xFFFF, one character is returned. 値が大きい場合、対応するサロゲート ペアが返されます。For higher values, the corresponding surrogate is returned. 0 xFFFF よりも高い値の場合は、対応するサロゲートの代わりに NULL が返されます。A value higher than 0xFFFF returns NULL instead of the corresponding surrogate.
UNICODEUNICODE 0 – 0x10FFFF の範囲の UTF-16 コード ポイントが返されます。Returns a UTF-16 code point in the range 0–0x10FFFF. 0 – 0xFFFF の範囲の UCS-2 コード ポイントが返されます。Returns a UCS-2 code point in the range 0–0xFFFF.
1 文字に一致するワイルドカードMatch One Character Wildcard

ワイルドカード - 一致しない文字列Wildcard - Character(s) Not to Match
補助文字は、すべてのワイルドカード操作でサポートされています。Supplementary characters are supported for all wildcard operations. 補助文字は、これらのワイルドカード操作でサポートされていません。Supplementary characters aren't supported for these wildcard operations. その他のワイルドカード演算子がサポートされます。Other wildcard operators are supported.

GB18030 のサポートGB18030 support

GB18030 は中華人民共和国が単独で中国語の文字のエンコードに使用している標準規格です。GB18030 is a separate standard that's used in the People's Republic of China for encoding Chinese characters. GB18030 文字の長さは 1 バイト、2 バイト、4 バイトのいずれかです。In GB18030, characters can be 1, 2, or 4 bytes in length. SQL ServerSQL Server では、クライアント側アプリケーションからサーバーに GB18030 でエンコードした文字が入力されたときに文字を認識し、内部的には Unicode 文字に変換して格納することで GB18030 文字をサポートしています。provides support for GB18030-encoded characters by recognizing them when they enter the server from a client-side application and converting and storing them natively as Unicode characters. それらがサーバーに格納されると、それ以降の操作では Unicode 文字として処理されます。After they're stored in the server, they're treated as Unicode characters in any subsequent operations.

任意の中国語の照合順序を使用できますが、最新の 100 バージョンの使用をお勧めします。You can use any Chinese collation, preferably the latest 100 version. すべての _100 レベルの照合順序は、GB18030 文字の言語的な並べ替えをサポートしています。All _100 level collations support linguistic sorting with GB18030 characters. データに補助文字 (サロゲート ペア) が含まれている場合は、検索や並べ替えの機能を向上させるために、SQL Server 2017SQL Server 2017 で利用可能な SC 照合順序を使用できます。If the data includes supplementary characters (surrogate pairs), you can use the SC collations that are available in SQL Server 2017SQL Server 2017 to improve searching and sorting.

注意

GB18030 でエンコードされた文字を含む文字列が正しく表示されるように、SQL Server Management StudioSQL Server Management Studio などのクライアント ツールでは確実に Dengxian フォントを使用します。Ensure that your client tools, such as SQL Server Management StudioSQL Server Management Studio, use the Dengxian font to correctly display strings that contain GB18030-encoded characters.

複雑な文字表記のサポートComplex script support

SQL ServerSQL Server は、複雑な文字表記の入力、格納、変更、および表示をサポートできます。can support inputting, storing, changing, and displaying complex scripts. 複雑な文字表記には、次の種類があります。Complex scripts include the following types:

  • アラビア語テキストと英語テキストの組み合わせなど、右から左に記述されるテキストと左から右に記述されるテキストの両方の組み合わせを含む文字表記。Scripts that include the combination of both right-to-left and left-to-right text, such as a combination of Arabic and English text.
  • アラビア語、インド諸語、タイ語の文字など、位置によって、または別の種類の文字と組み合わせた場合に、文字が変形する文字表記。Scripts whose characters change shape depending on their position, or when combined with other characters, such as Arabic, Indic, and Thai characters.
  • タイ語など、単語間に区切りがないため、単語を識別するための内部辞書を必要とする言語。Languages, such as Thai, that require internal dictionaries to recognize words because there are no breaks between them.

SQL ServerSQL Server を操作するデータベース アプリケーションは、複雑な文字表記をサポートするコントロールを使用する必要があります。Database applications that interact with SQL ServerSQL Server must use controls that support complex scripts. マネージド コードで作成される標準の Windows フォーム コントロールは、複雑な文字表記を使用できます。Standard Windows form controls that are created in managed code are complex-script-enabled.

SQL Server 2017 (14.x)SQL Server 2017 (14.x) に追加された日本語照合順序Japanese collations added in SQL Server 2017 (14.x)SQL Server 2017 (14.x)

SQL Server 2017 (14.x)SQL Server 2017 (14.x) 以降では、各種オプションの順列 (_CS、_AS、_KS、_WS、_VSS) で、新しい日本語照合順序がサポートされています。Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x), new Japanese collation families are supported, with the permutations of various options (_CS, _AS, _KS, _WS, and _VSS).

これらの照合順序を一覧表示するには、SQL Server データベース エンジンSQL Server Database Engineに対してクエリを実行します。To list these collations, you can query the SQL Server データベース エンジンSQL Server Database Engine:

SELECT Name, Description FROM fn_helpcollations()  
WHERE Name LIKE 'Japanese_Bushu_Kakusu_140%' OR Name LIKE 'Japanese_XJIS_140%'

すべての新しい照合順序には補助文字の組み込みサポートがあるので、どの新しい _140 照合順序にも SC フラグはありません (または必要ありません)。All the new collations have built-in support for supplementary characters, so none of the new _140 collations has (or needs) the SC flag.

これらの照合順序は、データベース エンジンDatabase Engine インデックス、メモリ最適化テーブル、列ストア インデックス、ネイティブ コンパイル モジュールでサポートされています。These collations are supported in データベース エンジンDatabase Engine indexes, memory-optimized tables, columnstore indexes, and natively compiled modules.

UTF-8 のサポートUTF-8 support

SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、インポートまたはエクスポートのエンコードとして、および文字列データのデータベース レベルまたは列レベルの照合順序として、広く使用されている UTF-8 文字エンコードの完全なサポートが導入されています。introduces full support for the widely used UTF-8 character encoding as an import or export encoding, and as database-level or column-level collation for string data. UTF-8 は、char および varchar データ型で許可されており、UTF8 サフィックスを持つようにオブジェクトの照合順序を作成するか変更すると有効になります。UTF-8 is allowed in the char and varchar data types, and it's enabled when you create or change an object's collation to a collation that has a UTF8 suffix. たとえば、LATIN1_GENERAL_100_CI_AS_SCLATIN1_GENERAL_100_CI_AS_SC_UTF8 に変更します。One example is changing LATIN1_GENERAL_100_CI_AS_SC to LATIN1_GENERAL_100_CI_AS_SC_UTF8.

UTF-8 は、SQL Server 2012 (11.x)SQL Server 2012 (11.x) で導入された補助文字をサポートする Windows 照合順序にのみ使用できます。UTF-8 is available only to Windows collations that support supplementary characters, as introduced in SQL Server 2012 (11.x)SQL Server 2012 (11.x). nchar および nvarchar データ型では、UCS-2 または UTF-16 エンコードのみが許可され、変更されていません。The nchar and nvarchar data types allow UCS-2 or UTF-16 encoding only, and they remain unchanged.

UTF-8 と UTF-16 でのストレージの相違点Storage differences between UTF-8 and UTF-16

Unicode Consortium では、各文字に一意のコード ポイント (000000 – 10FFFF の範囲の値) が割り当てられています。The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、完全な範囲を表すために、UTF-8 エンコードと UTF-16 エンコードの両方を使用できます。With SQL Server 2019 (15.x)SQL Server 2019 (15.x), both UTF-8 and UTF-16 encodings are available to represent the full range:

  • UTF-8 エンコードでは、ASCII 範囲 (000000 – 00007F) の文字には 1 バイト、コード ポイント 000080 – 0007FF には 2 バイト、コード ポイント 000800 – 00FFFF には 3 バイト、コード ポイント 0010000 – 0010FFFF には 4 バイトが、それぞれ必要です。With UTF-8 encoding, characters in the ASCII range (000000–00007F) require 1 byte, code points 000080–0007FF require 2 bytes, code points 000800–00FFFF require 3 bytes, and code points 0010000–0010FFFF require 4 bytes.
  • UTF-16 エンコードでは、コード ポイント 000000 – 00FFFF には 2 バイト、コード ポイント 0010000 – 0010FFFF には 4 バイトが必要です。With UTF-16 encoding, code points 000000–00FFFF require 2 bytes, and code points 0010000–0010FFFF require 4 bytes.

次の表では、各文字範囲およびエンコード種類に対するエンコード ストレージ バイトの一覧を示します。The following table lists the encoding storage bytes for each character range and encoding type:

コードの範囲 (16 進)Code range (hexadecimal) コードの範囲 (10 進)Code range (decimal) UTF-8 でのストレージ バイト数 1Storage bytes1 with UTF-8 UTF-16 でのストレージ バイト数 1Storage bytes1 with UTF-16
000000 – 00007F000000–00007F 0 – 1270–127 11 22
000080 – 00009F000080–00009F
0000A0 – 0003FF0000A0–0003FF
000400 – 0007FF000400–0007FF
128 – 159128–159
160 – 1,023160–1,023
1,024 – 2,0471,024–2,047
22 22
000800 – 003FFF000800–003FFF
004000 – 00FFFF004000–00FFFF
2,048 – 16,3832,048–16,383
16,384 – 65,53516,384–65,535
33 22
010000 – 03FFFF2010000–03FFFF2

040000 – 10FFFF2040000–10FFFF2
65,536 – 262,143265,536–262,1432

262,144 – 1,114,1112262,144–1,114,1112
44 44

1 "ストレージ バイト数" は、データ型のディスク上でのストレージ サイズではなく、エンコード済みのバイト長を示します。1 Storage bytes refers to the encoded byte length, not the data-type on-disk storage size. ディスク上のストレージ サイズについて詳しくは、「nchar および nvarchar」と「char および varchar」をご覧ください。For more information about on-disk storage sizes, see nchar and nvarchar and char and varchar.

2 補助文字のコード ポイント範囲。2 The code point range for supplementary characters.

ヒント

CHAR(n) および VARCHAR(n)、またはNCHAR(n) および NVARCHAR(n) では、n は文字数を定義すると考えるのが一般的です。It's common to think, in CHAR(n) and VARCHAR(n) or in NCHAR(n) and NVARCHAR(n), that n defines the number of characters. これは、CHAR (10) 列の例では、0 – 127 の範囲の 10 個の ASCII 文字を Latin1_General_100_CI_AI などの照合順序を使用して格納できるためで、この範囲内の各文字が 1 バイトのみを使用するためです。This is because, in the example of a CHAR(10) column, 10 ASCII characters in the range 0–127 can be stored by using a collation such as Latin1_General_100_CI_AI, because each character in this range uses only 1 byte.

ただし、CHAR(n) および VARCHAR(n) では、n によって "バイト" での文字列のサイズ (0 – 8,000) が定義され、NCHAR(n) および NVARCHAR(n) では n によって "バイトペア" での文字列のサイズ (0 – 4,000) が定義されます。However, in CHAR(n) and VARCHAR(n), n defines the string size in bytes (0–8,000), and in NCHAR(n) and NVARCHAR(n), n defines the string size in byte-pairs (0–4,000). n は、格納できる文字数を定義しません。n never defines numbers of characters that can be stored.

見たように、使われている文字セットによっては、適切な Unicode エンコードとデータ型を選択することで、ストレージを大幅に節約したり、現在のストレージの占有領域を増やしたりする可能性があります。As you've just seen, choosing the appropriate Unicode encoding and data type might give you significant storage savings or increase your current storage footprint, depending on the character set in use. たとえば、Latin1_General_100_CI_AI_SC_UTF8 など、UTF-8 対応のラテン語の照合順序を使用する場合、CHAR(10) 列に 10 バイトが格納され、0 – 127 の範囲に 10 個の ASCII 文字を保持できます。For example, when you use a Latin collation that's UTF-8 enabled, such as Latin1_General_100_CI_AI_SC_UTF8, a CHAR(10) column stores 10 bytes and can hold 10 ASCII characters in the range 0–127. ただし、128 – 2047 の範囲では 5 文字のみ、2048 – 65535 の範囲では 3 文字のみ保持できます。But it can hold only 5 characters in the range 128–2047 and only 3 characters in the range 2048–65535. これに対して、NCHAR(10) 列には 10 バイトペア (20 バイト) が格納されるため、0 – 65535 の範囲に 10 文字を保持できます。By comparison, because a NCHAR(10) column stores 10 byte-pairs (20 bytes), it can hold 10 characters in the range 0–65535.

データベースまたは列に UTF-8 または UTF-16 のどちらのエンコードを使うかを選択する前に、格納される文字列データの分布を考慮してください。Before you choose whether to use UTF-8 or UTF-16 encoding for a database or column, consider the distribution of string data that will be stored:

  • 主に 0 – 127 の ASCII 範囲の場合は (英語など)、各文字に UTF-8 では 1 バイト、UTF-16 では 2 バイトが必要です。If it's mostly in the ASCII range 0–127 (such as English), each character requires 1 byte with UTF-8 and 2 bytes with UTF-16. UTF-8 を使う方がストレージに関してメリットがあります。Using UTF-8 provides storage benefits. 0 – 127 の範囲の ASCII 文字の既存の列データ型を、UTF-8 対応の照合順序を使って NCHAR(10) から CHAR(10) に変更すると、必要なストレージが 50% 削減されます。Changing an existing column data type with ASCII characters in the range 0–127 from NCHAR(10) to CHAR(10), and using an UTF-8 enabled collation, translates into a 50 percent reduction in storage requirements. このように減るのは、NCHAR(10) を保存するには 20 バイト必要であるのに対し、CHAR(10) では同じ Unicode 文字列表現に 10 バイトしか必要ないためです。This reduction is because NCHAR(10) requires 20 bytes for storage, compared with CHAR(10), which requires 10 bytes for the same Unicode string representation.
  • ASCII の範囲の上の、ほぼすべてのラテン語系スクリプト、およびギリシャ語、キリル語、コプト語、アルメニア語、ヘブライ語、アラビア語、シリア語、Tāna、N’Ko では、UTF-8 および UTF-16 のどちらでも、1 文字あたり 2 バイトが必要です。Above the ASCII range, almost all Latin-based script, and Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic, Syriac, Tāna, and N’Ko, require 2 bytes per character in both UTF-8 and UTF-16. これらの場合は、対応するデータ型で大きなストレージの違いはありません (たとえば、char または nchar を使う場合)。In these cases, there aren't significant storage differences for comparable data types (for example, between using char or nchar).
  • 主に東アジア言語のスクリプト (韓国語、中国語、日本語) の場合は、各文字に UTF-8 では 3 バイト、UTF-16 では 2 バイトが必要です。If it's mostly East Asian script (such as Korean, Chinese, and Japanese), each character requires 3 bytes with UTF-8 and 2 bytes with UTF-16. UTF-16 を使う方がストレージに関してメリットがあります。Using UTF-16 provides storage benefits.
  • 010000 – 10FFFF の範囲の文字には、UTF-8 と UTF-16 のどちらでも 4 バイト必要です。Characters in the range 010000–10FFFF require 4 bytes in both UTF-8 and UTF-16. これらの場合は、対応するデータ型でストレージの違いはありません (たとえば、char または nchar を使う場合)。In these cases, there aren't storage differences for comparable data types (for example, between using char or nchar).

その他の考慮事項については、「国際化に対応した Transact-SQL ステートメントの記述」をご覧ください。For other considerations, see Write International Transact-SQL Statements.

タスクTask トピックTopic
SQL Server のインスタンスの照合順序を設定または変更する方法について説明しますDescribes how to set or change the collation of the instance of SQL Server サーバーの照合順序の設定または変更Set or Change the Server Collation
ユーザー データベースの照合順序を設定または変更する方法について説明しますDescribes how to set or change the collation of a user database データベースの照合順序の設定または変更Set or Change the Database Collation
データベース内の列の照合順序を設定または変更する方法について説明しますDescribes how to set or change the collation of a column in the database 列の照合順序の設定または変更Set or Change the Column Collation
サーバー、データベース、または列のレベルでの照合順序の情報を取得する方法について説明しますDescribes how to return collation information at the server, database, or column level 照合順序情報の表示View Collation Information
Transact-SQL ステートメントを、ある言語から別の言語に容易に移行したり、複数の言語を簡単にサポートしたりできるように記述する方法について説明しますDescribes how to write Transact-SQL statements that are more portable from one language to another, or support multiple languages more easily 国際化に対応した Transact-SQL ステートメントの記述Write International Transact-SQL Statements
エラー メッセージの言語と、日付、時刻、通貨データを使用および表示する際の設定を変更する方法について説明しますDescribes how to change the language of error messages and preferences for how date, time, and currency data is used and displayed セッション言語の設定Set a Session Language

詳細については、次の関連コンテンツを参照してください。For more information, see the following related content:

参照See also

包含データベースの照合順序 Contained Database Collations
フルテキスト インデックス作成時の言語の選択 Choose a Language When Creating a Full-Text Index
sys.fn_helpcollations (Transact-SQL)sys.fn_helpcollations (Transact-SQL)