LocalDB のサポート
LocalDB は、SQL Server の軽量バージョンで、SQL Server 2012 (11.x) から使用できるようになりました。 ここでは、LocalDB インスタンス内のデータベースに接続する方法について説明します。
解説
LocalDB のインストール方法や LocalDB インスタンスの構成方法など、LocalDB の詳細については、SQL Server 2012 (11.x) Express LocalDB に関するSQL Server オンライン ブックのトピックを参照してください。
要約すると、LocalDB では、次のことを行うことができます。
sqllocaldb.exe i を使用して既定のインスタンスの名前を検出できます。
AttachDBFilename 接続文字列キーワードを使用して、サーバーをアタッチするデータベース ファイルを指定できます。 AttachDBFilename を使用するときに、Database 接続文字列キーワードを使用してデータベース名を指定しなかった場合、データベースはアプリケーションの終了時に LocalDB インスタンスから削除されます。
接続文字列では、次のように LocalDB インスタンスを指定します。 例として、サンプルの SQLSRV 接続文字列を次に示します。
$conn = sqlsrv_connect( '(localdb)\\v11.0', array( 'Database'=>'myData')); $conn = sqlsrv_connect( '(localdb)\\v11.0', array('AttachDBFileName'=>'c:\\myData.MDF','Database'=>'myData')); $conn = sqlsrv_connect( '(localdb)\\v11.0', array('AttachDBFileName'=>'c:\\myData.MDF'));
次に示すのは、サンプルの PDO_SQLSRV 接続文字列です。
$conn = new PDO( 'sqlsrv:server=(localdb)\\v11.0;' . 'Database=myData', NULL, NULL); $conn = new PDO( 'sqlsrv:server=(localdb)\\v11.0;' . 'AttachDBFileName=c:\\myData.MDF;Database=myData ', NULL, NULL); $conn = new PDO( 'sqlsrv:server=(localdb)\\v11.0;' . 'AttachDBFileName=c:\\myData.MDF', NULL, NULL);
必要に応じて、sqllocaldb.exe を使用して LocalDB インスタンスを作成できます。 また、sqlcmd.exe を使用して、LocalDB インスタンスのデータベースの追加と変更を実行できます。 たとえば、「 sqlcmd -S (localdb)\v11.0
」のように入力します。 (IIS で実行する場合、コマンド ラインで実行する場合と同じ結果を得るには、正しいアカウントで実行する必要があります。詳細については、「完全 IIS での LocalDB の使用、第 2 部: インスタンスの所有権」を参照してください。
次に示す接続文字列の例では、SQLSRV ドライバーを使用して、myInstance という名前の LocalDB 名前付きインスタンス内のデータベースに接続します。
$conn = sqlsrv_connect( '(localdb)\\myInstance',
array( 'Database'=>'myData'));
次に示す接続文字列の例では、PDO_SQLSRV ドライバーを使用して、myInstance という名前の LocalDB 名前付きインスタンス内のデータベースに接続します。
$conn = new PDO( 'sqlsrv:server=(localdb)\\myInstance;'
. 'database=myData', NULL, NULL);
LocalDB のインストール手順については、LocalDB のドキュメントを参照してください。 sqlcmd.exe を使用して LocalDB インスタンス内のデータを変更する場合、sqlcmd ユーティリティが必要です。