dポイントプレゼントキャンペーン実施中!

SQLServer2005を使用しています。
これまで、各フィールドの照合順序を指定しないで<データベースの規定値>でのデータベースを利用してきました。
これからは照合順序を指定してデータベースを利用することになったのですが、元々作成してあったテーブルと、照合順序を指定するようになってから追加したテーブルをJOINで結合して取得しようとしたところ、「照合順序の競合を解決ができません」という旨のエラーが出ました。
照合順序を統一すれば問題が無くなる?と考えています。
新しく指定しようとしている照合順序はJapanese_90_BIN2で、規定値で使用していた照合順序はJapanese_BINのようです。
簡単に統一できる方法はあるのでしょうか?

A 回答 (1件)

・とりあえずそのJOINだけ何とかしたい場合、


 SELECT * FROM テーブルBIN t1
 INNER JOIN テーブルBIN2 t2 ON t2.フィールド=t1.フィールド COLLATE Japanese_90_BIN2
WHERE ...

・データベースの既定の照合順序を変更したり、既存のテーブルの照合順序を変更するのは、普通は以下の制約にかかる可能性が高いので、厳しいと思います。
--次の条件の 1 つ以上に該当する場合、ALTER COLUMN で照合順序を変更することはできません。
--・CHECK 制約、FOREIGN KEY 制約、またはその列を参照する計算列が変更された場合。
--・列にインデックス、統計、またはフルテキスト インデックスが作成された場合。変更する列に対して自動的に作成された統計は、列の照合順序を変更すると削除されます。
--・スキーマ バインド ビューまたは関数で列が参照されている場合。

そうなると、地道に既定値で作成したテーブルを再作成するしかないと思います。

参考URL:http://msdn.microsoft.com/ja-jp/library/ms190273 …
    • good
    • 0
この回答へのお礼

SQLでも指定が出来たんですね!
ちょっと色々試してみようと思います。
回答ありがとうございました!

お礼日時:2009/03/28 21:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!