SQL Server

SQLServer で文字列検索を実行した際にアルファベットの大文字小文字やひらがなカタカナを区別しなかったりした時には、照合順序(Collation)が正しくない場合がある。デフォルトの照合順序はJapanese_CI_AS一通りの照合順序の設定方法と意味などをまとめておく。

照合順序の確認

Select SERVERPROPERTY('collation')データベース毎の確認 
Select DATABASEPROPERTYEX('db_name', 'collation')照合順序の設定

特定の照合順序を明示的に指定して DB やテーブルを作成する。

CREATE TABLE t1 (c1 nvarchar (16) COLLATE Japanese_BIN NOT NULL);

特定の照合順序を明示的に指定して テーブルを編集する

ALTER TABLE t1 ALTER COLUMN c1 nvarchar(16) COLLATE Japanese_CS_AS NOT NULL;

日本語の照合順序は以下のような書式であらわされている。

書式: Japanese_BIN
書式: Japanese_(CI | CS)_(AI | AS)[(_KS | _WS | _KS_WS)]

詳細:

  • 大・小文字の区別:
    CI(Case Insensitive)
  • 大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない。例:「A」と「a」は同じ
    CS(Case Sensitive)
  • 大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する。
  • アクセント、濁音、破裂音の区別:
    AI(Accent Insensitive)
  • アクセント、濁音、破裂音を区別しない。半角カナの濁音、破裂音も区別しない。例:「ハ」、「バ」、「パ」は同じ
    AS(Accent Sensitive)
  • アクセント、濁音、破裂音を区別する。
  • KS(Kana Sensitive)
    ひらがなとカタカナを区別する。半角でも区別する。例:「は」と「ハ」を区別する
  • WS(Width Sensitive)
    文字幅を区別する。全角、半角を区別する。例:「a」と「a」を区別する
  • BIN(Binary)
    バイナリで比較する。すべて区別する。


超多機能のアクセス解析が永久無料!

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:41:49 (1628d)

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMITȂ1~] COiq COsیI