前のエントリ、SQL Server Express EditionにpubsとNorthwindを追加する(その1) - 三日坊主と呼ばせない!日記の続きです。
コマンドプロンプトを使ってNorthwindデータベースをSQL Server 2008 Express Editionにアタッチします。
注意:ここでは、インストール環境は以下のようになっています。
SQL Server:SQL Server 2008
インスタンス名:SQLEXPRESS
SQL Serverのインストール先:localhost
認証:Windows認証
Northwindのアタッチ
NorthwindのMDFを、コマンドプロンプトからアタッチします。
基本的にはReadMe_SQL2000SampleDbScripts.htmに記述されている、コマンドラインを使用する方法(『Attaching the Pre-built Files by Using osql』)に従って実行しますが、Readmeでは従来のSQL Serverのバージョンから付属しているosql.exeを使用している部分をsqlcmd.exeを使った場合に読み替えてやってみました。
これは、SQL Server 2005以降ではosqlの使用が非推奨となり、代わりにsqlcmdの使用が推奨されているためです*1。
1.MDFファイルを移動
※この行程は環境によっては必須ではないかもしれません。
Windows7の環境では、C:\SQL Server 2000 Sample Databases\NORTHWND.MDFを直接アタッチしようとすると、『物理ファイル "C:\SQL Server 2000 Sample Databases\NORTHWND.MDF" を開けません。オペレーティング システム エラー 5: "5(アクセスが拒否されました。)"。』というエラーメッセージが表示され、実行できませんでした。
そのため、必要なファイルをSQL ServerのDataディレクトリなどにコピーしてやります。
例:
以下のファイル、C:\SQL Server 2000 Sample Databases\配下のNORTHWND.MDFとNORTHWND.LDF*2を、SQL Serverのデータディレクトリ(C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data等)にコピー
3.以下のコマンドを実行
sqlcmd.exeにて、sp_attach_dbストアドプロシージャを使用してアタッチするコマンドを実行します。
例えば私の環境であれば、以下のようになります(表示の都合上、改行していますので改行は省いてください)。
sqlcmd -E -S localhost\SQLEXPRESS -Q "EXEC sp_attach_db N'Northwind', N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NORTHWND.MDF'"
基本的には、ReadMe_SQL2000SampleDbScripts.htmに記載されているosqlを使った場合のコマンドに対して、osqlをsqlcmdに変更し、ホスト名やインスタンス名、ファイルのパスを調整しただけの物になります。
※一点、、ReadMe_SQL2000SampleDbScripts.htmにあるサンプルでは、『NORTHWND.MDF』ではなくて『NORTHWIND.MDF』となっている(errataかな?)ので、注意。
以上で、Northwindのインストールは完了です。
(Visual StudioのGUIを用いたpubsデータベースのインストールは、次のエントリへ。)