Visual Studio 2008 SP1の大きな特徴の一つは,マイクロソフトのリレーショナル・データベース管理システムの新版「SQL Server 2008」に対応したことだ。SQL Server 2008の新機能はたくさんあるが,何より注目すべき点は,新しいデータ型だろう。日付と時刻を扱うデータ型が新しくなったので,テーブルの定義をするときから,データベース・アプリケーションのコーディングをするところまで,その影響は大きい。

 表1は前バージョンであるSQL Server 2005の日付と時刻に関するデータ型だ。datetimeとsmalldatetimeの二つがあるが,データ長が短いため,格納できる範囲や,精度の面では難しい面があると言える。SQL Server 2008では,表2に示したように,date,time,datetime2,datetimeoffsetという,日付と時刻に関する四つのデータ型が追加された。日付と時刻を,分けて格納することも,一緒に格納することもでき,範囲や精度を改善した。SQL Server 2008のドキュメントにあるdatetime型の項目には,「新しい作業項目に対しては,time,date,datetime2,およびdatetimeoffsetデータ型を使用します。これらの型はSQL標準に準拠しています。これらの型は,より高い移植性を持ちます」と記述されている。

表1●SQL Server 2005の日付と時刻に関するデータ型
[画像のクリックで拡大表示]
表1●SQL Server 2005の日付と時刻に関するデータ型
表2●SQL Server 2008の新しいデータ型。今後作成するデータベースでは,datetimeではなく,date,time,datetime2,datetimeoffsetを使うことが望ましい
[画像のクリックで拡大表示]
表2●SQL Server 2008の新しいデータ型。今後作成するデータベースでは,datetimeではなく,date,time,datetime2,datetimeoffsetを使うことが望ましい

 表2の残り三つについても少し説明しよう。hierarchyidは,上司と部下,といったような階層構造をデータベースに格納するために用意された。ただ,どれが親でどれが子かといった関係を指定するためにはコーディングが必要で,このデータ型を指定すれば済むというものではない。geometryとgeographyは,地理情報システムなどで便利に使えそうなデータ型だ。

 SQL Server 2008についてのドキュメントは,まず「SQL Server デベロッパー センター」に行って,「Microsoft SQL Server 2008オンラインブック」(SQLServer2008_BOL_August2008_JPN.msi,195.5Mバイト)をダウンロードしてインストールするとよいだろう(図1)。ただ,timeデータ型がキーワード一覧に表示されないといった編集ミスが見受けられたし,SQL Server 2005のドキュメントと見比べたいこともあるので,インターネット上のMSDNライブラリも併用しよう。

図1●「Microsoft SQL Server 2008オンラインブック」をインストールして,キーワード機能でdatetime2データ型の情報を見ているところ
図1●「Microsoft SQL Server 2008オンラインブック」をインストールして,キーワード機能でdatetime2データ型の情報を見ているところ
[画像のクリックで拡大表示]