【覚え書き】Transact-SQL

Transact-SQLで、

select hoge from Table_A with(nolock)
union
select hoge from Table_B with(nolock)

とやろうとすると、

サーバー : メッセージ 446、レベル 16、状態 9、行 1
UNION 操作での照合順序の競合を解決できません。

とか出て実行できない。
さり気にCreate文を見ると、それぞれのcollate値が違っていたりした。

Table_A
[hoge] [char] (2) COLLATE Japanese_CI_AS NOT NULL CONSTRAINT...

Table_B
[hoge] [char] (2) COLLATE Japanese_CS_AS NOT NULL CONSTRAINT... 

ンなこと知るかあああああ!
解決するにはSelect文の中でcollateを統一して指定してやればいい。

select (hoge) collate Japanese_CI_AS from Table_A with(nolock)
union
select (hoge) collate Japanese_CI_AS from Table_B with(nolock)

たったこれだけの為に2日アタマ抱えてた*1・・・orz


エラーメッセージでぐぐっても何も出てこなかったのでここに記す。
つーか似たようなテーブルなんだからこんなトコ合わせておけよ・・・。

*1:と言っても他に何もしてなかったわけじゃないよ?