SQL Server の mdf ldf ファイル名を変更する
MDF LDFファイルの名前を変更する手順を紹介します。
SQL Server 2016 の場合
SQL Server 2016で以前のバージョンと同じ手順で変更しても名前の変更ができません。
現象
SQL Server Management Studio を起動します。変更したいmdf, ldfファイルのデータベースをデタッチします。その後、データディレクトリのデタッチしたmdf, ldfファイルの名前を変更します。
SQL Server Management Studio を起動します。オブジェクトエクスプローラで[データベース]のノードを選択し、右クリックします。ポップアップメニューが表示されますので[アタッチ]メニューを選択します。
下図の[データベースのインポート]ダイアログボックスが表示されます。[アタッチする]データベース欄の[追加]ボタンをクリックします。ファイル選択ダイアログボックスが表示されるので、アタッチするデータベースのmdfファイルを指定します。
mdfファイルが読み込まれました。ダイアログ右下の[OK]ボタンをクリックします。
[データベースのインポート中にエラーが発生しました。詳細については、メッセージ列のハイパーリンクをクリックしてください。]のメッセージが表示されます。
[データベースのインポート]ダイアログボックスの[アタッチするデータベース]欄の[メッセージ]列にリンクがありますので、こちらをクリックします。
「データベースのインポートに失敗しました。データベースのインポートには少なくとも1つのファイルが必要です。」のエラーメッセージが表示されます。
エラーメッセージは表示されますが、ファイル名を変更したMDF LDF ファイル名を指定する欄が無いため、SQL Server Management Studio では名前の変更ができません。
対策
SQL Server Management Studio では処理できないため
SQLコマンドでアタッチを実行します。
sp_attach_db (データベース名), '(mdfファイルのフルパス)', '(ldfファイルのフルパス)'
コマンド例
sp_attach_db iPentecSandbox,
'D:\SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\iPentecSandbox.mdf',
'D:\SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\iPentecSandbox_log.ldf'
作業手順
- データベースをデタッチします。
- データディレクトリのmdf, ldf ファイル名を変更します。
- 上記のSQLコマンドを実行して、データベースをアタッチします。
SQL Server 2008 の場合
- データベースをデタッチ
- /data ディレクトリ内のMDF LDF ファイル名を変更
- データベースをアタッチ
- アタッチの際にエラがー出るので、ファイル名を変更したMDF LDF ファイル名を指定する。
以上です。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。