RSS

タグ : COLLATE

[SQLServer] equal to 操作での照合順序の競合を解決できません。

異なるテーブルなどを結合するSQLにおいて
equal to 操作での照合順序の競合を解決できません
というエラーが表示される場合がある。

たとえば
互いに MODEL_IDという varchar列を持つ、TABLE_AとTABLE_Bにおいて

とした場合、普通に問題のないSQLなのだが
TABLE_A が Japanese_Bin
TABLE_B が Japanese_CI_AI_KI
だったりすると、エラーとなる場合がある。
(SQL Serverの照合順序とは文字列の並び替えや比較に関連して出てくるキーワード。
文字の取り扱いが異なる2テーブルのvarchar列を比較するので問題になる。)

一時的には

など、COLLATE句を使用すれば解決するだろう。

本当はテーブル設計とかデータインポートの時に気をつけるべき。

See Also :
Microsoft SQL Server 2000 のインターナショナル機能