Loading...

三愛情報ブログ

三愛情報の日々の活動を掲載しております。

2007年6月21日 更新

社員ブログ

SQL Server 照合順序

SQLServer2000で動作しているシステムに「尾てい骨」の「てい」に当たる文字を入力すると「?」となると連絡を受けた。
こちらでも試してみた。
Enterprise Manager より直接入力すると、
「入力した値は、列のデータ型またはデータ長と一致しません。」
とメッセージが出力されて入力すら出来ない。
クエリ アナライザより INSERT文 で登録してから、SELECT すると「尾?骨」と出力される。
再度、Enterprise Manager で直接中を見ても「尾?骨」だ。
調べてみると、その文字は「JIS補助漢字 (JIS X0212)」で、
SQLServer2000 では、Unicode のみの対応となるらしい。
Unicode 対応などした覚えは全くない。
既存のデータベースを Unicode 対応に変更するにはどうすれば良いのか。

① 照合順序名を変更する
SELECT CONVERT(char, SERVERPROPERTY(‘collation’))
ALTER DATABASE TABLE1 COLLATE Japanese_CS_AS_KS_WS
SELECT CONVERT(char, SERVERPROPERTY(‘collation’))
② データ型を varchar → nvarchar に変更する

テストしてみたところ、正しく登録も表示もされた。
照合順序名は、実際何にすれば良いのだろう?
今回はすべて区別するようにしてみた。(Japanese_CS_AS_KS_WS)
しかも、これに変更して全く問題が無いと言い切れない。
すべてにおいてテストが必要だ。
まだまだ勉強が足らないなぁ

三愛情報 株式会社

〒510-0074 三重県四日市市鵜の森1丁目10番7号

電話番号: 059-359-0561