ようこそ 屋根裏部屋 mkII へ ログイン | 登録 | ヘルプ

Technological

ちょっとしたTIPSや私がはまったこと、調べたことなんかを書いていきます。

JIS X 0213:2004とTeam Foundation Server

TFSのDatabase Tierのデータベースを見てみると、全部Japanese_CI_ASでした。

biacさんがまとめてくれたJIS 第3水準・第4水準の漢字を SQL Server で使う (その2)ではJIS第三、第四水準を正しく使うにはJapanese_90_CI_ASでなくてはならないと書かれています。VistaクライアントをいれるとJIS第三、第四水準の文字が入ってくるわけなのですが、このへんどうなるんでしょう。

制限?それともSP1で対応?SP1で対応としても、SQL Serverのデータベース作り直し…ですよねぇ。入力側でガードかけるんだろうか。

公開 2006年11月15日 0:03 投稿者 kkamegawa
タグ , ,

コメントの通知

この投稿にコメントが付いた場合にメールを受信するには、登録してください。ここ

また次のフィードから、お気に入りのRSSリーダーを使って最新の状態を知ることもできます。 コメントのRSSフィード

コメント

# re: JIS X 0213:2004とTeam Foundation Server @ 2006年11月15日 10:07

ごめんなさい、誤解させてしまったかな?

http://akari.kabe.co.jp/MagSite/Content.modf?id=20060620142116 に書いたのだけれど、

> デフォルトの照合順序のとき (Japanese_CI_AS)

>     ・どちらのバージョンでも、 上に書いたような比較演算と一意制約の問題が起きました。

>     ・等号での比較 (WHERE name = N'吉田' のような条件式) は、 どちらも正しく抽出されました。

…ということで、 まるで使えないというわけではないです。 f(^^;

Japanese_CI_AS であっても、 その列に一意制約が掛かっていなければ INSERT/UPDATE は問題無くできるようです。 SELECT も、 等号での比較なら問題無さげです。

TFS は、 入力された文字列を一意制約の掛かった列に格納するなんてことは (たぶん f(^^; ) やってないでしょう。 なので、 LIKE 検索で余計に抽出してしまったり、 ORDER BY の順序が想定と違ったり、 といった程度の影響が出る (かもしれない) くらいでは?

biac

# re: JIS X 0213:2004とTeam Foundation Server @ 2006年11月15日 10:37

で、 実際の開発の場面で、 SQL Server は Japanese_CI_AS に設定されてしまっているとき。 一意制約問題は、 どーにもなりません。 f(^^; 検索は、 COLLATE 句を使って、 WHERE [HOGE] LIKE '%MOGE' COLLATE Japanese_90_CI_AS みたいにして、 そのつど照合順序を指定してやれば、 なんとか。 f(^^; ただし。 Japanese_90_CI_AS が使えるのは、 Windows Server 2003 + SQL Server 2005 (以降) の組み合わせだけ。 おまけに、By Design だというバグがあったりして ( → http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24773&forum=26 )、 悩ましい限り。 けっきょく、 http://blogs.wankuma.com/naka/archive/2006/10/20/41923.aspx にあるように、 Japanese_90_Bin を使うのが正解なのかなぁ。 f(^^;

biac

# re: JIS X 0213:2004とTeam Foundation Server @ 2006年11月16日 7:24

ORDERで意図しない順序なのはまだしも、よけいに重複は痛いなぁ。人名検索困りそうじゃない?(^^;。

kkamegawa

どのような感想ですか?

(必須) 
必須 
(必須) 
Powered by Community Server, by Telligent Systems