照合順序の変更方法

既存のデータベースの照合順序を Japanese_CI_AS*1 から Japanese_90_BIN2*2 や Japanese_90_CS_AS*3 などに変更したい場合の手順メモです。

照合順序を変更するには、データベースのプロパティ「オプション」から「照合順序」から可能ですが、この値を変更しても既存テーブルの各カラムには新しい照合順序が反映されません。各カラムに照合順序を反映するには、

などの方法があります。どちらの方法でも可能ですが、新しくデータベースを作り直してもいいのであれば、そちらの方が構造がきれいになるのでおすすめです。

参考までに、既存カラムの照合順序を調べるための SQL を以下に記述します。

SELECT
  OBJECT_NAME(sys.objects.object_id) AS 'Table Name'
  , sys.columns.name AS 'Column Name'
  , sys.columns.collation_name 
FROM
  sys.columns 
  INNER JOIN sys.objects 
    ON sys.columns.object_id = sys.objects.object_id 
WHERE
  sys.objects.type = 'U'
ORDER BY
  OBJECT_NAME(sys.objects.object_id)
  , sys.columns.name

*1:大文字小文字を区別しない

*2:バイナリ照合順序

*3:大文字小文字を区別する