初めまして、最近はもっぱらクラウドサービスに傾倒しているサカイです。
発端
RDSとは→AWSのRDBサービス
RDSにはいくつかデータベースエンジンがあり、その中のSQL Serverを使い、一時テーブルから実テーブルへのINSERT処理を行うクエリを実行したところ照合順序が一時テーブルと実テーブルで違うぞ!と怒られてしまった。
原因
一時テーブルはシステムデータベースのtempdbに作成されるため、作られる一時テーブルの照合順序はtempdbに引っ張られてしまいます。
※RDSはサーバーの照合順序がデフォルトで「SQL_Latin1~」なため、システムDB含め既定値がLatinになる
そして、実テーブルは「Japanese_CI_AS」で作成していたため、一時テーブルとの間でエラーが起きていたみたいです。
ちなみに、AzureならDBインスタンス作成する時に照合順序が指定出来ます。
AWSだと変更が出来ないので避けられない問題…。
解決
一時テーブルを作成する際に明示的に照合順序を指定する。
普段から日本語版SQL ServerやOSに触れていると言語を気にしませんが、クラウドサービスなど海外のサービスを使用する際は今回の照合順序含め、ローカライズにお気をつけ下さい。