SQLServer の collation (照合順序)の設定
最終更新日 2007-05-08 22:13:42 (1年以上前の記事です)
SQLServer で文字列検索を実行した際にアルファベットの大文字小文字やひらがなカタカナを区別しなかったりした時には、照合順序(Collation)が正しくない場合がある。
一通りの照合順序の設定方法と意味などをまとめておく。
照合順序の確認
照合順序の確認を行うには osql で以下のクエリを実行する。
デフォルトの確認
Select SERVERPROPERTY('collation')
データベース毎の確認
Select DATABASEPROPERTYEX('db_name', 'collation')
照合順序の設定
特定の照合順序を明示的に指定して DB やテーブルを作成する。
CREATE TABLE t1 (c1 nvarchar (16) COLLATE Japanese_BIN)
各 Collation の意味
日本語の照合順序は以下のような書式であらわされている。
書式: Japanese_BIN
書式: Japanese_(CI | CS)_(AI | AS)[(_KS | _WS | _KS_WS)]
この Japanese_ の後に続く BIN や CI といったキャラクターに意味がある。以下がその説明。
CI(Case Insensitive)
大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない。
例:「A」と「a」は同じ
CS(Case Sensitive)
大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する。 CI の逆。
AI(Accent Insensitive)
アクセント、濁音、破裂音を区別しない。半角カナの濁音、破裂音も区別しない。
例:「ハ」、「バ」、「パ」は同じ
AS(Accent Sensitive)
アクセント、濁音、破裂音を区別する。 AI の逆。
KS(Kana Sensitive)
ひらがなとカタカナを区別する。半角でも区別する。
例:「は」と「ハ」を区別する
WS(Width Sensitive)
文字幅を区別する。全角、半角を区別する。
例:「a」と「a」を区別する
BIN(Binary)
バイナリで比較する。すべて区別する。
最終更新日 2007-05-08 22:13:42
コメント
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5