web-dev-qa-db-ja.com

SQL Server:.mdfからデータベースをインポートしていますか?

ローカルボックスに.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
23
Joe Stefanelli

SQL Management Studio Expressを開き、データベースをアタッチするサーバーにログインします。 [オブジェクトエクスプローラー]ウィンドウで、[データベース]フォルダーを右クリックし、[接続...]を選択します。[データベースの接続]ウィンドウが開きます。そのウィンドウ内で[追加...]をクリックし、.MDFファイルに移動して[OK]をクリックします。データベースのアタッチを完了するには、もう一度[OK]をクリックします。データベースが使用可能である必要があります。宜しくお願いします :)

29
saba

この操作を実行するには、次の画像を参照してください。

enter image description here

次のステップは* .mdfファイルの追加です。

非常に重要です。mdfファイルはC:......\MSSQL12.SQLEXPRESS\MSSQL\DATAに配置する必要があります

enter image description here

ログファイルを削除します

enter image description here

13
daniele3004

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

1

上記の@ daniele3004の回答に記載されている手順とは別に、管理者としてSSMSを開く必要がありました。そうしないと、プライマリファイルが読み取り専用エラーでした。

[スタート]メニューに移動し、SSMSリンクに移動し、SSMSリンクを右クリックして、管理者として実行を選択します。次に、上記の手順を実行します。

1
Mudassir Hasan