何かのシステムが吐き出したキー文字列をSQL Server上でキーとして利用する場合、照合順序に気をつけましょう。
特にアルファベットを多用したキーの場合、キー重複でやられる可能性があります。SQL Serverで日本語を扱うDBを作った場合、たいていテーブルや列の照合順序は「Japanese_CI_AS」になっています。これは
- Japanese:日本語
- CI:Case Insensitive:大文字小文字区別無し
- AS:Accent Sensitive:アクセント、濁音半濁音区別
という指定で、これだと「a」と「A」は比較処理などでは同じデータとして扱われます。これはSQLでの検索条件などでも同様です。
SQL文中でこの指定を強制的に変更するには、末尾に
collate Japanese_CS_AI
などの一文を付けて任意のルールを指定可能です。
スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ)
- 作者: 中山清喬,飯田理恵子
- 出版社/メーカー: インプレス
- 発売日: 2013/04/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
この辺なども参考にするとよいでしょう。