検索 K
- データベース ファイルをSQL Server Expressにアタッチする方法 http://msdn.microsoft.com/ja-jp/library/ms165673(SQL.90).aspx
管理ツールを入れればGUIでいけるようだけど、コマンドラインでも可能なので、その方法のメモ。
元ネタは上記リンクから、青文字が追記部分です。
サーバーでコマンド プロンプトを開きます。
コマンド プロンプトから、次のsqlcmdコマンドを使用してSQL Serverのインスタンスに接続します。
sqlcmd -S ServerInstanceServerはコンピューターの名前、Instanceはインスタンスの名前です。 (ローカルの場合は、sqlcmdだけでOK)
DBのアタッチ
接続したら、次のコマンドを入力します。
USE [master]
GO
CREATE DATABASE [database_name] ON
( FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData<database name>.mdf' ),
( FILENAME = N'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData<database name>.ldf' )
FOR ATTACH ;
GOdatabase_nameはアタッチするデータベースの名前を表し、FILENAMEはデータベース ファイルとログ ファイルのパスとファイル名を表します。FOR ATTACHでは、既存のオペレーティング システム ファイルのセットをアタッチすることにより、データベースを作成するように指定します。 (Visual Studioの場合は[xxxxx].mdfと[xxxxx]_log.ldfの2つが対象)
データベースがアタッチされたことを確認するには、次の2つのコマンドを入力します。
select name from sys.databases
gosqlcmdツールにより、SQL Server Expressのこのインスタンスにアタッチされたすべてのデータベースの名前が表示されます。この一覧には、手順3. で指定したデータベース名が含まれています。
DBのデタッチ
sp_detach_db 'database'
goデタッチを行わないとVisual Studio等で開けなくなります。
