現在、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 バックアップをとりたいテーブル名
プロシージャとか初めて使ったけど、なにこれめっちゃ楽しい。
調子こいて、使っていたらエラーを喰らいました。
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 バックアップをとりたいテーブル名