照合については、データベースには独自の照合がありますが、すべてのテーブルとすべての列に独自の照合を設定できます。指定しない場合、親オブジェクトのデフォルトを使用しますが、異なる場合があります。
データベースの照合を変更すると、すべての新しいテーブルと列の新しいデフォルトになりますが、データベース内の既存のオブジェクトの照合は変更されません。すべてのテーブルと列の照合を手動で変更する必要があります。
幸いなことに、インターネット上にはその仕事をすることができるスクリプトがあります。私はそれらを試したことがないので、私はそれらを推薦するつもりはありませんが、ここにいくつかのリンクがあります:
http://www.codeproject.com/Articles/302405/The-Easy-way-of-changing-Collation-of-all-Database
データベース内のすべてのフィールドの照合をオンザフライで更新
http://www.sqlservercentral.com/Forums/Topic820675-146-1.aspx
2つのオブジェクトで異なる照合を行う必要がある場合、または照合を変更できない場合でも、JOIN
を実行できます。 COLLATE
を使用してそれらの間 コマンドを実行し、参加する照合を選択します。
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE Latin1_General_CI_AS
またはデフォルトのデータベース照合を使用する:
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT