SQL Serverでは、インスタンス単位で「照合順序(Collation)」が設定されています。これは文字列の比較や並び替えのルールを決める重要な設定です。インストール時に設定され、後から変更するのは非常に手間がかかるため、事前にしっかり確認しておきましょう。
照合順序とは?
合順序とは、文字データの比較・並び替えのルールを定める設定です。たとえば、「A」と「a」を同じとみなすかどうか、「は」と「ば」を区別するかどうかなど、検索結果やソート順に影響します。
SQL Serverでは、インスタンスごとに照合順序が設定され、デフォルトでは【Japanese_CI_AS】が使用されます。
- CI:Case Insensitive(大文字・小文字を区別しない)
- AS:Accent Sensitive(アクセント・濁音・半濁音を区別する)
つまり、【Japanese_CI_AS】は「大文字小文字は区別しないが、アクセントや濁音は区別する」設定です。
照合順序の確認方法
SQLで確認する
以下のSQLを実行することで、現在のインスタンスの照合順序を確認できます。
SELECT SERVERPROPERTY('COLLATION') AS サーバー照合順序

Management Studioで確認する
SQL Server Management Studio(SSMS)を使用している場合は、以下の手順でも確認できます。
- インスタンスを右クリック
- 「プロパティ」を選択
- 「サーバーの照合順序」欄で確認

照合順序の種類と意味
以下は、照合順序に使われる主な略号とその意味です:
| 略号 | 説明 |
|---|---|
| _BIN | バイナリ比較。文字のビットパターンで並び替え。大文字・小文字を区別。旧システム向け。 |
| _BIN2 | Unicodeコードポイントに基づくバイナリ比較。より新しい方式。 |
| _CI | Case Insensitive。大文字・小文字を区別しない。 |
| _CS | Case Sensitive。大文字・小文字を区別する。 |
| _AI | Accent Insensitive。アクセント・濁音・半濁音を区別しない。 |
| _AS | Accent Sensitive。アクセント・濁音・半濁音を区別する。 |
| _KS | Kana Sensitive。ひらがなとカタカナを区別する。 |
| _WS | Width Sensitive。半角と全角を区別する。 |
照合順序の変更は可能?
照合順序は後から変更することも可能ですが、以下のような制約があります:
- データベースやテーブル単位での変更は可能だが、既存データとの整合性に注意が必要
- インスタンス全体の照合順序を変更するには、SQL Serverの再インストールが必要
そのため、インストール時に照合順序を慎重に設定することが重要です。
まとめ
- 照合順序はSQL Serverインスタンスごとに設定される
- デフォルトは【Japanese_CI_AS】
- 文字列の比較・並び替えに影響するため、システム設計時に重要
- 後からの変更は困難なので、インストール時に必ず確認する

コメント