「SQL Azureで日本語を使用するには・・・」は陳腐化し、とても簡単になりました
Windows Azure書籍
Windows Azureについて書かれた書籍が、ここ最近立て続けに発売されています。年が明けてから発売されたものでも、次の3冊が発売されています。
- 2012/2 Windows Azureテクニカルハンドブック (査読協力しました!)
- 2012/2 ひと目でわかるWindows Azureアプリケーション開発入門 (MSDNプログラミングシリーズ)
- 2012/1 Windows Azure Platform開発入門 (MSDNプログラミングシリーズ) (SQL Azureの章を書きました!)
書籍という定型・固定的な情報源と、進化の速いクラウドの相性が悪い部分が出てしまっています。上記の書籍3冊で共通して、「SQL Azureで日本語を使用するには・・・」と特別にピックアップして説明しています。実際、あえて説明する必要があるトピックだったのです。
しかし、2011年12月にリリースされた「既定の照合順序の変更」機能により、今でも通用するけど、あえてしなくても良い話となってしまいました。
2011年12月より前にSQL Azureで日本語を使用するには・・・。
従来、SQL Azureの照合順序は、「SQL_Latin_General_CP1_CI_AS」でした。
その為、日本語を格納するには次のような対応が必要でした。
- varchar、char、textデータ型に日本語を格納するには、個別に日本語照合順序を指定する
- nvarchar、nchar、ntext型のようなユニコード対応データ型を使用する
- 日本語を格納する際には、Nプレフィックスを記述する(例:「N’日本語を格納’」)
現在、SQL Azureで日本語を使用するには
2011年12月に、データベースの既定の照合順序を指定できるようになりました。そのため、データベース作成時に、照合順序を変更しておけば普通に日本語を格納することができます。
照合順序を指定してデータベースを作成するには、SQL Azure管理ポータルを使用します。Windows Azure管理ポータルからデータベースを作成する時には、照合順序を指定できません。
SQL Azure管理ポータルで、データベースを新規作成するときに照合順序を「Japanese_CS_AI」を指定します。そうすると、日本語環境のWindows Serverに日本語版のSQL Serverをインストールしたときと同じ状態になります。
とはいえ・・・
これで、話が完結しないのが日本語。
JIS2004対応をするには、結局のところ、「nvarchar、nchra、ntextデータ型を使用して、Nプレフィックスを使用する」必要があるので、結局のところ、状況はあまり変わらないのでありました。