So-net無料ブログ作成

SQLServer に UNIQUE キーを張って全角/半角が同じものと判定されてることに気付く [RDBMS]

ユニークキーのカラムを作ってデータを投入しようとしたら、半角/全角 だけが違うものが制約エラーになる。
これ↓か。
http://www.microsoft.com/japan/msdn/sqlserver/sql2000/intlfeaturesinsqlserver2000.aspx
(手元の何も考えずにインストールした SQLServer の環境では)
データーベースを何も考えずに作ると、照合順序が Japanese_CI_AS になってる。

全角/半角だけでなく、ひらがな/カタカナも同じものとして扱ってるのか。
照合順序って、並べ替え(Order By 句)に使うために必要で UNIQUE の判定には関係ないと思ってた。

今回に限って言えば、Japanese_CS_AS_KS_WS のが良いような気がする。
カラム単位に照合順序の設定もできるみたいだけど、今回はデーターベース全体でいいや。
ここ↓を参考にして、
http://msdn2.microsoft.com/ja-jp/library/ms175835.aspx

ALTER DATABASE database_name COLLATE Japanese_CS_AS_KS_WS


でやりたいことができた。

さらに問題を発見。
NVARCHAR で(VARCHAR でも同じだと思うけど)ユニークキーと指定すると「あいうえお」と「あいうえお 」(最後に半角のスペースがあるかないか)を同じものと判定する。
これは、元データがいまいちなのも一因なので、データを直すことにしてみる。


nice!(0)  コメント(3)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 3

FranSkige

Donde Puedo Comprar Fruta Acai Efectos Del Cialis En La Mujer <a href=http://getpharmacyonline.com>cialis 5 mg best price usa</a> Misoprostol Sans Ordonnance
by FranSkige (2019-06-04 21:00) 

Auststeend

Cheapest Price For Cialis Amoxicillin Veterinary Use Cats <a href=http://addrall.com>when will we be able to buy alli again</a> Commander Lioresal Nolvadex For Sale Zithromax Wound Infection
by Auststeend (2019-06-06 09:29) 

Kelaffoks

Uso Propecia <a href=http://drugs20.com>cialis</a> Buy Arimidex Online India Kamagra Quoka
by Kelaffoks (2019-06-10 21:22) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0