PR

 SQL Server Expressデータベースには,3通りの基本的な展開手法がある。データベースとアプリケーションを個別にインストールする手動展開法,「.mdfファイル」をアプリケーションのインストーラからコピーし,「AttachDBFile」というキーワードを接続文字列に使ってファイルを添付してデータベースをインストールするXCopy展開法,そして,アプリケーションのインストール・プロセスの一部としてSQL Server Expressをインストールする組み込み型の展開法である。

 組み込み型展開法は,アプリケーションのセットアップ・プログラムにSQL Server Expressの実行可能なセットアップ・プログラムを含めることによって機能する。SQL Server Expressのセットアップ・プログラムは,様々なコマンド・ライン・パラメータを受け付けるので,プログラム的にセットアップ・プロセスを制御できるのだ。

 セットアップ・プログラムのパラメータの提供方法には2通りある。SQL Server Expressセットアップ・プログラムを呼び出し,コマンド・ラインでパラメータ一式を送る方法か,すべてのパラメータをテンプレートの.iniファイルに設定する方法だ。テンプレートの.iniファイルを変更する手法の方が,インストール・オプションを記録するソースを1つにまとめて作成できるので便利だ。

 組み込み型展開法を行う上では,setup.exeプログラムをSQL Server Expressダウンロード・ファイルから抽出する必要があることに注意してもらいたい。SQL Server Expressをダウンロードしたら,sqlexpr.exe(SQL Server Expressの場合)またはsqlexpr_adv.exe(SQL Server Express with Advanced Servicesの場合)という名前のファイルができる。セットアップ・ファイルを抽出するには,「/X」コマンド・ライン・パラメータを用いてダウンロード・プログラムを実行する。次に例を示す。

sqlexpr.exe /X

 セットアップ・ファイルを抽出したら,テンプレートの.iniファイルに変更を加える。このテンプレートの.iniファイルはテキスト形式のファイルなので,標準のテキストエディタで編集できる。抽出した状態のままだと,このテンプレートの.iniファイルは未完成なので,使用するには変更を加える必要がある。どのような変更を加えるべきかを理解するには,このファイルの充実したマニュアルを参照すればよい。

 インストールするには,必要な情報を埋め,無関係な情報はコメントアウトするか削除する必要がある。角括弧内の項目を(角括弧なしで)自分のセットアップ情報に置き換える。セミコロンでコメントアウトした序文を1行付ける。SQL Server Books Online(BOL)には,テンプレートの.iniファイルのパラメータがすべて説明されているため,ここでの説明は割愛する。

 一番重要なパラメータは「ADDLOCAL」だ。ADDLOCALパラメータは,インストールするSQL Server Expressのコンポーネントを指定する。セットアップにはADDLOCALパラメータが必要であるため,指定しないと失敗する。また「ADDLOCAL=ALL」という値を使用できる。別の方法として,SQL Server Expressでは,SQL_Engine,SQL_Data_Files,SQL_Replication,Client_Components,Connectivityのコンポーネントをそれぞれ個別に指定できる。

 変更したテンプレートの.iniファイルを使って自動的にセットアップを行う場合,それをパラメータとしてSQL Server Expressのsetup.exeプログラムに送る。アプリケーションのインストール・プログラムの一部として,この呼び出しとSQL Server Expressセットアップ・ファイルを含める必要があるだろう。次の例では,テンプレートの.iniファイルを使ってsetup.exeを呼び出す方法を示す。

start /wait setup.exe /qb /settings C:\template.ini

 典型的なSQL Server Expressのインストールと同様に,セットアップでエラーが発生したら,ログファイルを検証できる。SQL Server Expressセットアップ・ログ・ファイルのデフォルトの場所は「C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files」である。

 SQL Server Expressの組み込み型展開法に関する詳細は,ホワイト・ペーパー「Embedding SQL Server Express into Custom Applications(カスタム・アプリケーションへのSQL Server Expressの埋め込み)」に詳しく説明されている。