現在、SQL Server2008を使って開発しています。

プロシージャとか初めて使ったけど、なにこれめっちゃ楽しい。
調子こいて、使っていたらエラーを喰らいました。

equal to 操作の "Japanese_CS_AS_KS_WS" と "Japanese_CI_AS" 間での照合順序の競合を解決できません。

むむむ。
照合順序 とは、SQL Server でデータを検索する際に、全角/半角、英文字の大文字/小文字、ひらがな/カタカナ をどのように区別するのかを定義するものらしい。

エラー箇所としては、INNER JOINしているところのWHERE ~ ON ○ = ×のところ。
さくっと調べてみると回避方法があるらしい。
ON ○ = ×後にSQLに COLLATE Japanese_CI_AS を入れることで無事解決。

とはいきません。表面上では解決しているが、あまり納得行かない。
もう少し調べてみると良いソースが。

ここ

どうやらSQL Serverインストール段階に問題があるらしい。
たしかに、SQL Server環境を最近構築していて、それ以前につくったプロシージャは問題なく動いている。おそらく、自分のPCでクリエイトしたテーブルと既存のテーブルをJOINしているときに問題が出ているようだ。再構築か・・・

と思いながらよくよく調べてみたら、本来Japanese_CI_ASで作成しているテーブルがJapanese_CS_AS_KS_WSに変わっちゃっている模様。

仕方なく、最近作成したテーブルの照合順序をJapanese_CS_AS_KS_WSにあわせました。

*補足*
照合順序を確認する方法

sp_helpsortてコマンドで打てば、デフォルトの照合順序を調べられる。
Japanese, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitiveのようにでる

ほかの方法、以下のクエリを実行する。
SELECT CONVERT(varchar(20), DATABASEPROPERTYEX('データベース名','collation'))


テーブルのバックアップを取る方法
SELECT * INTO 新しいテーブル名 FROM バックアップをとりたいテーブル名