

# Amazon RDS for Microsoft SQL Server の照合と文字セットの管理
<a name="Appendix.SQLServer.CommonDBATasks.Collation"></a>

このトピックでは、Amazon RDS で Microsoft SQL Server の照合順序と文字セットを管理する方法について説明します。データベースの作成中に照合順序を設定し、後で変更する方法を説明し、言語とロケールの要件に基づいてテキストデータを適切に処理できるようにします。さらに、Amazon RDS の SQL Server 環境で互換性とパフォーマンスを維持するためのベストプラクティスについても説明します。

SQL Server は、複数のレベルで照合をサポートします。DB インスタンスを作成するときに、デフォルトのサーバー照合を設定します。照合は、データベース、テーブル、または列レベルでオーバーライドできます。

**Topics**
+ [Microsoft SQL Server のサーバーレベルの照合](#Appendix.SQLServer.CommonDBATasks.Collation.Server)
+ [Microsoft SQL Server のデータベースレベルの照合](#Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column)

## Microsoft SQL Server のサーバーレベルの照合
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Server"></a>

Microsoft SQL Server DB インスタンスを作成するときに、使用するサーバーの照合順序を設定できます。別の照合を選択しない場合、サーバーレベルの照合はデフォルトでSQL\$1Latin1\$1General\$1CP1\$1CI\$1AS になります。サーバー照合は、デフォルトですべてのデータベースとデータベースオブジェクトに適用されます。

**注記**  
DB スナップショットから復元する場合は、照合順序を変更できません。

Amazon RDS は現在、以下のサーバー照合をサポートしています。


| 照合 | 説明 | 
| --- | --- | 
|  Arabic\$1CI\$1AS  |  アラビア語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Chinese\$1PRC\$1BIN2  |  Chinese-PRC、バイナリコードポイントのソート順序  | 
|  Chinese\$1PRC\$1CI\$1AS  |  中国語 - 中華人民共和国、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Chinese\$1Taiwan\$1Stroke\$1CI\$1AS  |  繁体字中国語 (台湾)、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Danish\$1Norwegian\$1CI\$1AS  |  デンマーク-ノルウェー語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Danish\$1Norwegian\$1CI\$1AS\$1KS  |  デンマーク-ノルウェー語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別あり、全角半角の区別なし  | 
|  Danish\$1Norwegian\$1CI\$1AS\$1KS\$1WS  |  デンマーク-ノルウェー語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別あり、全角半角の区別あり  | 
|  Danish\$1Norwegian\$1CI\$1AS\$1WS  |  デンマーク-ノルウェー語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別あり  | 
|  Danish\$1Norwegian\$1CS\$1AI  |  デンマーク-ノルウェー語、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Danish\$1Norwegian\$1CS\$1AI\$1KS  |  デンマーク-ノルウェー語、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別あり、全角半角の区別なし  | 
|  Finnish\$1Swedish\$1100\$1BIN  |  Finnish-Swedish-100、バイナリソート  | 
|  Finnish\$1Swedish\$1100\$1BIN2  |  Finnish-Swedish-100、バイナリコードポイント比較ソート  | 
|  Finnish\$1Swedish\$1100\$1CI\$1AI  |  フィンランド-スウェーデン語-100、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Finnish\$1Swedish\$1100\$1CI\$1AS  |  フィンランド-スウェーデン語-100、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Finnish\$1Swedish\$1CI\$1AS  |  フィンランド語、スウェーデン語、およびスウェーデン語 (フィンランド)、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  French\$1CI\$1AS  |  フランス語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Greek\$1CI\$1AS  |  ギリシャ語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Greek\$1CS\$1AS  |  ギリシャ語、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Hebrew\$1BIN  |  ヘブライ語、バイナリソート  | 
|  Hebrew\$1CI\$1AS  |  ヘブライ語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Japanese\$1BIN  | 日本語、バイナリソート | 
|  Japanese\$1CI\$1AS  |  日本語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Japanese\$1CS\$1AS  |  日本語、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS  |  日本語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし、補足文字、バリエーションセレクタの区別なし  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS  |  日本語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし、補足文字、バリエーションセレクタの区別あり  | 
|  Japanese\$1XJIS\$1140\$1CI\$1AS\$1VSS  |  日本語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし、補足文字、バリエーションセレクタの区別あり  | 
|  Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS  |  日本語、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別あり、全角半角の区別あり、補足文字、バリエーションセレクタの区別なし  | 
|  Korean\$1Wansung\$1CI\$1AS  |  韓国語 (Wansung)、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Latin1\$1General\$1100\$1BIN  |  Latin1-General-100、バイナリソート  | 
|  Latin1\$1General\$1100\$1BIN2  |  Latin1-General-100、バイナリコードポイントソート  | 
|  Latin1\$1General\$1100\$1BIN2\$1UTF8  |  Latin1-General-100、バイナリコードポイントソート順序、UTF-8 エンコード  | 
|  Latin1\$1General\$1100\$1CI\$1AS  |  Latin1-General-100、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Latin1\$1General\$1100\$1CI\$1AS\$1SC\$1UTF8  |  Latin1-General-100、大文字と小文字を区別しない、アクセントを区別する、補助文字、UTF-8 エンコード  | 
|  Latin1\$1General\$1BIN  |  Latin1-General、バイナリソート  | 
|  Latin1\$1General\$1BIN2  |  Latin1-General、バイナリ、コードポイントソート  | 
|  Latin1\$1General\$1CI\$1AI  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Latin1\$1General\$1CI\$1AS  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Latin1\$1General\$1CI\$1AS\$1KS  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別あり、全角半角の区別なし  | 
|  Latin1\$1General\$1CS\$1AS  |  Latin1-General、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Modern\$1Spanish\$1CI\$1AS  |  現代スペイン語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Polish\$1CI\$1AS  |  ポーランド語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  SQL\$11xCompat\$1CP850\$1CI\$1AS  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 850 の SQL Server ソート順 49 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP1\$1CI\$1AI  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 1252 の SQL Server ソート順 54 (非 Unicode データの場合)  | 
|  **SQL\$1Latin1\$1General\$1CP1\$1CI\$1AS (デフォルト)**  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 1252 の SQL Server ソート順 52 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP1\$1CS\$1AS  |  Latin1-General、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 1252 の SQL Server ソート順 51 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP437\$1CI\$1AI  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 437 の SQL Server ソート順 34 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP850\$1BIN  |  Latin1-General、バイナリソート順 (Unicode データの場合)、コードページ 850 の SQL Server ソート順 40 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP850\$1BIN2  |  Latin1-General、バイナリコードポイントソート (Unicode データの場合)、コードページ 850 の SQL Server ソート順 40 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP850\$1CI\$1AI  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別なし、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 850 の SQL Server ソート順 44 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP850\$1CI\$1AS  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 850 の SQL Server ソート順 42 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1Pref\$1CP850\$1CI\$1AS  |  Latin1-General-Pref、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 850 の SQL Server ソート順 183 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP1256\$1CI\$1AS  |  Latin1-General、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 1256 の SQL Server ソート順 146 (非 Unicode データの場合)  | 
|  SQL\$1Latin1\$1General\$1CP1255\$1CS\$1AS  |  Latin1-General、大文字と小文字の区別あり、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし (Unicode データの場合)、コードページ 1255 の SQL Server ソート順 137 (非 Unicode データの場合)  | 
|  Thai\$1CI\$1AS  |  タイ語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 
|  Turkish\$1CI\$1AS  |  トルコ語、大文字と小文字の区別なし、アクセント (濁音、破裂音) の区別あり、ひらがな片仮名の区別なし、全角半角の区別なし  | 

AWS CLI を使用して、サポートされている照合順序のリストをプログラムで取得することもできます。

```
aws rds describe-db-engine-versions --engine sqlserver-ee --list-supported-character-sets --query 'DBEngineVersions[].SupportedCharacterSets[].CharacterSetName' | sort -u
```

照合を選択
+ Amazon RDS のコンソールを使用している場合、新しい DB インスタンスを作成するときには、**[Additional configuration]** (追加設定) を選択し、**[Collation]** (照合) フィールドに照合を入力します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ AWS CLI を使用している場合は、`--character-set-name` コマンドで `create-db-instance` オプションを使います。詳細については、[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) を参照してください。
+ Amazon RDS API を使用している場合は、`CharacterSetName` 操作で `CreateDBInstance` パラメータを使用します。詳細については、[CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) を参照してください。

## Microsoft SQL Server のデータベースレベルの照合
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column"></a>

デフォルト照合順序は、新しいデータベースまたはデータベースオブジェクトを作成する際に、照合順序を上書きすることにより、データベース、テーブル、または列レベルで変更できます。例えば、デフォルトのサーバー照合が SQL\$1Latin1\$1General\$1CP1\$1CI\$1AS の場合は、Mohawk 照合に対応できるように、これを Mohawk\$1100\$1CI\$1AS に変更することができます。クエリの引数も、必要に応じて他の照合順序を使用するために型変換できます。

例えば、次のクエリは、AccountName 列のデフォルト照合順序を Japanese\$1CI\$1AS に変更します。

```
CREATE TABLE [dbo].[Account]
	(
	    [AccountID] [nvarchar](10) NOT NULL,
	    [AccountName] [nvarchar](100) COLLATE Mohawk_100_CI_AS NOT NULL 
	) ON [PRIMARY];
```

Microsoft SQL Server DB エンジンは、組み込みの NCHAR、NVARCHAR、および NTEXT データ型で Unicode をサポートします。例えば、CJK サポートが必要な場合は、データベースとテーブルを作成するときに、文字列ストレージに対してこれらの Unicode データ型を使用して、デフォルトサーバー照合順序を上書きします。以下のリンクから、SQL Server に対する照合順序と Unicode のサポートに関連する Microsoft の情報を参照できます。
+ [照合順序の使用](http://msdn.microsoft.com/en-us/library/ms187582%28v=sql.105%29.aspx) 
+ [照合順序とインターナショナル対応に関する用語](http://msdn.microsoft.com/en-us/library/ms143726%28v=sql.105%29) 
+ [SQL Server 照合順序の使用](http://msdn.microsoft.com/en-us/library/ms144260%28v=sql.105%29.aspx) 
+ [データベースとデータベースエンジンアプリケーションの国際化に関する注意点](http://msdn.microsoft.com/en-us/library/ms190245%28v=sql.105%29.aspx)