SQL Server Collationの罠

SQLサーバとEntityFrameworkでプログラムを組んでいてちょっとはまった。

 

あまり深く考えずにデータベースを作るときに

ALTER DATABASE XYZ COLLATE Japanese_Unicode_CI_AS_KS

としていた。

 

で、名称マスタの編集画面を作っていて、保存するときに、名称マスタなので、名称が重複するといかんなぁと思って、重複チェックするようにした。

そしたら、なんと、カタカナとひらがなが一緒くたになってしまった!!

おいおい、KSはカタカナとひらがなは別ちゃうんかい!!!

仕方なく、データベースを作るときのCollationを

ALTER DATABASE XYZ COLLATE Japanese_CI_AS_KS

に変えた。

 

なんじゃいな。

 

追記・・・・だめだ

 

データをインポートしなおしたけど

 

Select Name, Count(*) FROM XYZ 

 

ってやるとCountが2になる。

むか~~~~。