ローカルボックスに.mdfファイルがあります。
ローカルボックスにSQL Server 2008 ExpressとSQL Management Studio 2008 Expressがインストールされています。
この.mdfファイルを新しいデータベースとしてSQL Serverにインポートするにはどうすればよいですか?
これは、世界中で1日に数千回実行する必要のあるとんでもなく一般的なタスクのように思えます。ManagementStudio Expressでそれを行う方法はわかりません。
私は何が欠けていますか?
参照: 方法:SQL Server Expressにデータベースファイルを添付する
Sqlcmdを介してデータベースにログインします。
sqlcmd -S Server\Instance
そして、コマンドを発行します:
USE [master]
GO
CREATE DATABASE [database_name] ON
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\<database name>.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\<database name>.ldf' )
FOR ATTACH ;
GO
SQL Management Studio Expressを開き、データベースをアタッチするサーバーにログインします。 [オブジェクトエクスプローラー]ウィンドウで、[データベース]フォルダーを右クリックし、[接続...]を選択します。[データベースの接続]ウィンドウが開きます。そのウィンドウ内で[追加...]をクリックし、.MDFファイルに移動して[OK]をクリックします。データベースのアタッチを完了するには、もう一度[OK]をクリックします。データベースが使用可能である必要があります。宜しくお願いします :)
LDFファイルがない場合:
1)MDFをC:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\
2)ssmsで、Databases -> Attach
そして、MDFファイルを追加します。この方法では追加できませんが、その中に含まれるデータベース名がわかります。
3)ssms.exeを実行しているユーザーがこのMDFファイルにアクセスしていることを確認してください。
4)DbNameがわかったので、実行します
EXEC sp_attach_single_file_db @dbname = 'DbName',
@physname = N'C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\DATA\yourfile.mdf';
参照: https://dba.stackexchange.com/questions/12089/attaching-mdf-without-ldf
上記の@ daniele3004の回答に記載されている手順とは別に、管理者としてSSMSを開く必要がありました。そうしないと、プライマリファイルが読み取り専用エラーでした。
[スタート]メニューに移動し、SSMSリンクに移動し、SSMSリンクを右クリックして、管理者として実行を選択します。次に、上記の手順を実行します。