照合順序の種類

SQL Server の照合順序には、Windows 照合順序と SQL Server 照合順序という 2 種類のグループがあります。

Windows 照合順序

Windows 照合順序は、SQL Server インスタンスがインストールされているオペレーティング システムで使用できる Windows システム ロケールを SQL Server でサポートするために定義されている照合順序です。SQL Server 2008 で追加された新しい Windows 照合順序のサポート (Windows システム ロケールに基づく照合順序) および他のすべての Windows 照合順序については、「Windows 照合順序名 (Transact-SQL)」を参照してください。

SQL Server に対して Windows 照合順序を指定すると、SQL Server のインスタンスは、その照合順序に関連付けられた Windows ロケールが指定されているコンピュータ上で実行されるアプリケーションと同じコード ページおよび並べ替え規則と比較規則を使用します。たとえば、SQL Server のフランス語 Windows 照合順序は、Windows のフランス語ロケールの照合順序属性と一致します。

Windows ロケールは SQL Server の Windows 照合順序よりも多数あります。Windows ロケールの名前は言語と地域で構成されます。たとえば、"フランス語 (カナダ)" のように表されます。ただし、いくつかの言語については、共通のアルファベットおよび文字の並べ替えと比較の規則が使用されています。たとえば、ポルトガル語と英語の Windows ロケールはいずれも Latin1 コード ページ (1252) を使用し、共通の規則に従って文字の並べ替えと比較を行います。Latin1_General は、1252 のコード ページと並べ替え規則に基づいた SQL Server 対応の Windows 照合順序であり、これらすべての Windows ロケールをサポートしています。

また、Windows ロケールは、通貨、日付、時刻の形式など、SQL Server でサポートされる Windows 照合順序が対象としていない属性を指定します。英国と米国など、国や地域によっては通貨、日付、時刻の形式が異なるため、異なる Windows ロケールが必要になります。しかし、英国と米国では同じアルファベットと、文字の並べ替えおよび比較の規則を使用するため、異なる SQL Server 照合順序は必要ありません。SQL Server の Windows 照合順序には、大文字小文字、アクセント、かな、および全角半角を区別する並べ替えおよび比較の規則を定義するサフィックスが付けられています。これらのサフィックスの詳細については、「Windows 照合順序並べ替えスタイル」を参照してください。

SQL Server 照合順序

SQL Server 照合順序は、以前のバージョンの SQL Server で指定されることが多かったコード ページ番号と並べ替え順の組み合わせの属性に対応した互換性オプションです。SQL 照合順序の多くで大文字小文字、アクセント、かな、および全角半角を区別するサフィックスを指定できますが、すべの照合順序で指定できるわけではありません。詳細については、「SQL Server 照合順序の使用」を参照してください。

SQL Server 照合順序は、Unicode 以外のデータには Unicode 以外の並べ替え規則を適用し、Unicode データには対応する Windows 照合順序を使用して Unicode の並べ替え規則を適用します。この違いによって、同一文字の比較でも結果の一貫性が失われる場合があります。したがって、データベースに Unicode の列と Unicode 以外の列が混在している場合は、どちらのデータにも同一の並べ替え規則を適用するために、すべての列を Windows 照合順序を使用して定義してください。

以前のバージョンの SQL Server との互換性を保つため、または以前のバージョンの SQL Server で SQL Server 照合順序を使用して開発されたアプリケーションの互換性を保つため、SQL Server には、英語 (米国) Windows システム ロケールを使用するコンピュータにインストールされているサーバーの既定の照合順序として SQL_Latin1_General_CP1_CI_AS 照合順序が用意されています。

Windows 照合順序と SQL Server 照合順序はパフォーマンスが異なります。詳細については、「Unicode のストレージとパフォーマンスの影響」を参照してください。