日本語照合順序 Japanese と Japanese_XJIS_100、Japanese_Bushu_Kakusu_100 の比較

はじめまして、マイクロソフト保瀬です。SQL Server 開発部門でテスターをしております。日本のSQL Serverチームがブログを開設してから1年以上が経ちますが、遅れ馳せながら今回はじめて書きます。これを機にできる限り、継続的かつ頻繁に情報発信できればと思います。よろしくお願いします。 初回は、トピックとしてあまり取り上げられないSQLの照合順序についていろいろと見ていこうと思います。CTP版やRC版等をお試しになっている方はお気づきと思いますが、新たに2つ照合順序が追加されています。 SQL Server に新規に照合順序が追加されることなった背景に Windows Server 2008 と足並みをそろえるという目的がありました。Windows Vistaを既にご使用の方は、お気付きと思いますが、コントロール パネルの「地域と言語のオプション」のところで並べ替えの設定ができます(下図参照)。ここで「XJIS」または「部首/画数」の何れかを指定できるようになっています。今回 SQL Server に新たに追加された日本語の照合順序名である Japanese_XJIS_100 及び Japanese_Bushu_Kakusu_100 はWindows Vista と Windows Server 2008 で指定可能となった「並べ替え」の内容に沿うような形で追加されています。   Japanese_XJIS_100 の照合順序で何が変わったか、特に以前からあるJapanese 照合順序などと比較した場合の文字の並び替えなど動作について見ていきましょう。まずは「論より証拠」で、実際にそれぞれJapanese_XJIS_100とJapaneseの照合順序でソートした場合の結果を比べていくことにします。尚、今回は一文字単位の比較としました。例えば、「は」と「ば」を比較するのであれば 、where 句の内容として “where N’は’ < N’ば’ collate Japanese_XJIS_100_CI_AS” といった具合で比較していくことにしました。2文字以上の文字列を含む比較となると、内部エンジンの文字列ソートについて触れておく必要が出てくるので、それはまた別の機会にしておきます。 比較内容として、今回は平仮名・片仮名の文字(単一文字のみ)を使って比較してみました。全ての五十音文字を使用するとかなりのテストパターンになるので、今回は清音、濁音、半濁音、平仮名、片仮名等の観点から、Japanese と Japanese_XJIS_100/Japanese_Bushu_Kakusu_100 の各照合順序の比較結果の違い検証してみました。 下記表1にグループ分けされた五十音文字を示します: 表1(参考:JIS X 4061「日本語文字列照合順番」) グループ グループ文字 清音 大文字(L)・小文字(S) 平仮名 (H)/ 片仮名…

2

[SQL Server JIS2004 対応に関するガイドライン] 技術ポイント解説 Webcast 公開

マイクロソフトの Coast です。  7 月 9 日に、[SQL Server JIS2004 対応に関するガイドライン] 技術ポイント解説を第 48 回 MSDN オフラインセミナーでお話しさせていただきました。平日の夜にもかかわらず、多数の方にお集まりいただきありがとうございました。その時の Webcast がこちらから公開されましたので、ご参加になれなかった方にご覧いただければ幸いです。 また、 7 月 19 日にSQL Server ユーザーグループ PASSJ の「Windows Server 2008 Beta3 セミナー in 東京」でも、同じ内容をお話しさせていただきました。 すでに JIS2004 対応に関するポイントは、ガイドラインで情報を提供させていただいてきたのですが、やはり直接お話しさせていただいた方が、よりご理解いただけたようで、次のようなフィードバックをいただきました。 ・ホワイトペーパーを読んだだけでは理解できなかった部分が理解できました。・言葉の定義や意味が良く分からなかった部分が整理できた。・文字の具体例について技術資料が少なかったため大変ありがたかった。・文字コードに関する知識が高まった。 また、ご参加いただいた方のブログでも Post していただきました。 ・あるSEのつぶやき SQL ServerのJIS2004対策セミナーに行ってきました・Voyageの日記 [SQL Server]MSDNオフライン・河端善博ブログ JIS2004 は続くよ … SQL Server 開発チームでは、JIS2004対応に関しては、引き続き重要なテーマとして取り扱っていくことにしております。JIS2004対応に関して、皆様から、もっとお知りになりたいことや、うまく対応ができた事例、できなかった事例など、コメントを頂けると幸いです。 コメントは、下記 n Comments のリンクをクリックしていただけると書き込みできますので、よろしくお願いします。 コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。


SQL Server 2005 のインターナショナル機能 日本語版アップデート(2007/6版)

マイクロソフトの Coast です。先日、このブログでご紹介させていただきました、ホワイト ペーパー「SQL Server 2005 のインターナショナル機能」の日本語版がアップデートされました。 http://go.microsoft.com/?linkid=6743837改訂内容は多くはありませんが、下記のとおりです。 改訂内容 旧(2007/2版) 暗黙的な変換 照合順序間の非 Unicode 文字データの暗黙的な変換は非決定的です。照合順序間の非 Unicode 文字データの暗黙的な変換についても、互換性レベルを 80 以下に設定しない限り、非決定的であると判断されます。   OLE DB OLE DB は、Microsoft Data Access Components (MDAC) の中心となるコンポーネントです。OLE DB は COM に基づいているため、すべての文字列は Unicode BSTR です (Windows XP、Windows Server 2003、および Windows 2000 では UTF-16、他のすべてのオペレーティング システムでは UCS-2)。ただし、MDAC 2.8 SP1 より前のバージョンの MDAC は、名前付きインスタンスをサポートしません。アプリケーションで SQL Server 2005 の名前付きインスタンスに接続できない場合があります。SQL Server…


「SQL Server の JIS2004 対応に関するガイドライン 」 2007/6 アップデート公開

マイクロソフトの Coast です。   ホワイトペーパー 「 SQL Server の JIS2004 対応に関するガイドライン 」 がアップデートされましたのでお知らせします。2007年6月版になります。   主な改訂内容 ・SQL Server 2005 SP2 リリース版での動作確認(動作は変わりませんが、以前はSQL Server 2005 SP2 CTP3 での確認でした。)・REPLACE, peplace_s のOS、照合順序別の動作確認結果追加・サンプルが付きました。 その他詳細な改訂点に関しましては、ドキュメントの最後にある改訂履歴をご参照ください。 SQL Server の JIS2004 対応に関するガイドライン (自己解凍 exe, 3.69 MB) はこちらからダウンロードしていただけます。   尚、今回の改訂には間に合わなかったのですが次の点にご注意いただけると幸いです。   P.10 の「IME 2007 の変換文字制限」は、「Microsoft Windows Vista に搭載されている Microsoft IME および 2007 Microsoft Office systems に付属する…

2

MSDN オフラインセミナー [SQL Server JIS2004 対応に関するガイドライン] 技術ポイント解説 開催

マイクロソフトの Coast です。   3月の Post 「JIS2004 と ユニコード対応 」 でご紹介させていただきました、 ホワイトペーパー「SQL Server の JIS2004 対応に関するガイドライン 」に関する技術ポイント解説を、下記のとおり、 MSDN オフラインセミナーでお話しさせていただくことになりました。   当日は、「 SQL Server JIS2004 対応に関するガイドライン」に沿って、JIS2004、Unicode、フォント、外字、データ型、照合順序、文字列操作 T-SQL 、 更に、Unicode 対応をした場合のパフォーマンスの考慮点などに関する技術的なポイントを解説させていただきます。   ガイドラインをお読みいただいて、内容をご理解しづらかった方は、ご都合がよろしければ、ご参加いただけますと幸いです。東京エリアの開催だけで恐縮です。 http://www.microsoft.com/japan/msdn/events/offline/   MSDN オフラインセミナー 第 48 回 「SQL Server 2000/2005 [JIS X 0213:2004 対応に関するガイドライン] 技術ポイント解説」  ■日    時: 2007年 7 月 9 日 18:30-20:00 (18:00 開場) ■場    所: マイクロソフト株式会社…


SQL Server 2005 のインターナショナル機能 日本語(Ja)版リリース

マイクロソフトの Coast です。先日、ホワイト ペーパー「SQL Server 2005 のインターナショナル機能」の日本語版がリリースされました。http://go.microsoft.com/?linkid=6743837このホワイト ペーパーでは、SQL Server 2005 のインターナショナル機能について説明しています。取り上げているトピックは、Unicode の説明、SQL Server 2005 の補助文字の追加サポート、さまざまなバージョンの SQL Server における照合順序、データ型の変更、パフォーマンス、データ プロバイダの更新、SQL Server 2005 Analysis Services および Integration Services の新しいインターナショナル サポート機能などです。先日のブログ 「JIS2004 とユニコード対応」 の技術的なバックグラウンドとしてSQL Server 2005のインターナショナル機能の理解を深めていただくための、重要な参考ドキュメントになります。 英語版 [International Features in Microsoft SQL Server 2005] はこちらです。http://msdn2.microsoft.com/en-us/library/bb330962.aspx参考までに、SQL Server 2000 用のホワイト ペーパーはこちらになります。日本語      http://www.microsoft.com/japan/msdn/sqlserver/sql2000/intlfeaturesinsqlserver2000.aspx 英語        http://msdn2.microsoft.com/en-us/library/aa902644(sql.80).aspx コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

1

照合順序はどれを使ったら良い?

マイクロソフトの Coast です。先日、PASSJ (SQL Server ユーザーグループ)  http://www.sqlpassj.org/ 様より、1月から2月かけて実施された、「SQL Server 製品機能に関するアンケート」の集計結果をいただきました。その中で、約30%の方から、「照合順序の違いやどれを使えばよいかがよくわからない。」というご回答をいただきました。 SQL Server の BOL には、照合順序に関する説明があるのですが、日本語以外の各言語の照合順序 も含めた説明になっているため、「日本語ではどうしたらいいか」という日本のユーザーに必要な情報が読み取りづらくなっています。そのために、約30%の方が「よくわからない」とお感じになっているのかもしれません。 非常に簡潔に説明しますと、照合順序は、その SQL Server の最新のものをお使いいただくことがお勧めになります。つまり、  SQL Server 2000 では、Japanese  SQL Server 2005 では、Japanese_90がお勧めになります。 注意: SQL Server 2005 でも、SQL Server 2000 で開発されたアプリケーションをそのまま使用する場合や、他の SQL Server 2000 と接続する場合などには、Japanese を使う必要がある場合もあります。 紛らわしい照合順序に Japanese_UNICODE がありますが、これは、SQL Server 7.0 との互換性確保のために残っている照合順序です。また、Windows 2000 以降の OS での LCID との整合性の注意 http://support.microsoft.com/kb/302747/ja もありますので、SQL Server 7.0 との互換性のために必要でない限りは、お使いにならないようをお勧めします。 それぞれの照合順序の違いに関しては、その照合順序が開発された当時の、JIS や Unicode などの文字標準規格との関係を意識すると理解しやすくなります。この点に関しては、公開されている「SQL Server…


JIS2004 と ユニコード対応

はじめまして、マイクロソフトの Coast です。SQL Server 開発部門でSQL Server のプログラムマネージャーをしています。 最近2~3のユーザー様とお話しさせていただく機会がありました。そのとき、ユニコード対応をどのようにされているかお聞きしてみたところ、ユニコード対応をあまり意識されていないとのことでした。 Vista 発売のタイミングで、JIS2004 という文字が新しくサポートされたことはご存知の方も多いと思いますが、このJIS2004 で新しく追加された文字は、従来の Shift-JIS にはありませんので、ユニコード対応をしていないと、SQL Server にInsert するときに、”?” に置き換えられます。 JIS2004対応のためのユニコード対応に関しては、公開されている「SQL Server の JIS2004 対応に関するガイドライン 」というホワイトペーパーに、技術的なポイントの説明があります。 「SQL Server の JIS2004 対応に関するガイドライン 」は、このリンクからダウンロードしていただけます。http://go.microsoft.com/?linkid=6302906 (ZIP 自己解凍 EXE 3.44MB)