こんにちは。
職人見習いの高嶋です。

時に案件でSQL Serverを使わなければいけないケースの場合、経験不足の為困る場合があるので備忘として残しておきます。

私の請け負った案件ではSQL Server2005を使うという事だったので、現在としてはバージョンは古いかもしれないですが、こちらを中心に紹介していきます。

1.Windows環境にSQL Serverをインストール

SQL Server 2005 Express エディション

上記URLからSQL Server 2005 Express Editionをインストールし、Service Pack1をインストールしたのであれば、その後Service Pack3を当てます。

Microsoft SQL Server 2005 Service Pack 3

SQL Server 2005 Express Editionをインストールしている最中、ログインID権限の確認方法を問われるので『統合Windows認証を使う』ではなく『ユーザーが入力するSQL Server用のログインIDとパスワードを使う』を選択するのが良いです。

2.データを貰う場合はそちらを反映

既にデータが存在していて(hoge.mdfとする)、それを自分の環境に反映させる場合は一旦SQL Serverのサービスを止めてからデータを任意の場所に保存します。

コントロールパネル → 管理ツール → サービスから、以下のサービスを一旦止めておきます。

  • SQL Server(SQLEXPRESS)
  • SQL Server Active Directory Helper
  • SQL Server VSS Writer

その上でhoge.mdfを保存します。
尚、今回は下記に保存する事とします。

C:dataldbhoge.mdf

その後、上記サービスをもう一度立ち上げます。

3.コマンドプロンプトからSQL Serverにログイン

コマンドプロンプトを立ち上げ、SQL Serverにログインします。

> sqlcmd -S (自分のPC名)SQLEXPRESS -U (ログインID) -P (ログインパスワード)

4.自分の環境で以前に『hoge』というデータベースを定義している場合は一旦デタッチ

1> sp_detach_db 'hoge'
2> go

5.データベースhogeを反映

1> sp_attach_single_file_db 'hoge','C:dataldbhoge.mdf'
2> go

上記でhogeデータベースが構築されますので、権限がない等のエラーが発生する場合は、hoge.mdfを右クリック『プロパティ』→『セキュリティ』を選択し、フルコントロール権限を持たせた『Everyone』アカウントを作成して再度行います。

6.PHPからデータベースに接続する為のODBCの設定

コントロールパネル → 管理ツール → データソース(ODBC) を選択します。

『追加』ボタンよりSQL Native Client を選択
 ↓
名前欄は任意
サーバー欄に『(自分のPC名)SQLEXPRESS』を入力
 ↓
『ユーザーが入力するSQL Server用のログインIDとパスワードを使う』を選択し、ID・パスワードを設定する
 ↓
『既定のデータベースを以下のものに変更する』にチェックを入れ、データベース名『hoge』を入力
 ↓
完了ボタンを押し、データソースのテストに成功したら設定完了

そして最後に、CSEやPHPから接続テストを行います。

※この記事は、なかの人(piro556)が書いています。