SQL Server の mdf ldf ファイル名を変更する

MDF LDFファイルの名前を変更する手順を紹介します。

SQL Server 2016 の場合

SQL Server 2016で以前のバージョンと同じ手順で変更しても名前の変更ができません。

現象

SQL Server Management Studio を起動します。変更したいmdf, ldfファイルのデータベースをデタッチします。その後、データディレクトリのデタッチしたmdf, ldfファイルの名前を変更します。

SQL Server Management Studio を起動します。オブジェクトエクスプローラで[データベース]のノードを選択し、右クリックします。ポップアップメニューが表示されますので[アタッチ]メニューを選択します。
SQL Server の mdf ldf ファイル名を変更する:画像1

下図の[データベースのインポート]ダイアログボックスが表示されます。[アタッチする]データベース欄の[追加]ボタンをクリックします。ファイル選択ダイアログボックスが表示されるので、アタッチするデータベースのmdfファイルを指定します。
SQL Server の mdf ldf ファイル名を変更する:画像2

mdfファイルが読み込まれました。ダイアログ右下の[OK]ボタンをクリックします。
SQL Server の mdf ldf ファイル名を変更する:画像3

[データベースのインポート中にエラーが発生しました。詳細については、メッセージ列のハイパーリンクをクリックしてください。]のメッセージが表示されます。
SQL Server の mdf ldf ファイル名を変更する:画像4

[データベースのインポート]ダイアログボックスの[アタッチするデータベース]欄の[メッセージ]列にリンクがありますので、こちらをクリックします。
SQL Server の mdf ldf ファイル名を変更する:画像5

「データベースのインポートに失敗しました。データベースのインポートには少なくとも1つのファイルが必要です。」のエラーメッセージが表示されます。
SQL Server の mdf ldf ファイル名を変更する:画像6

エラーメッセージは表示されますが、ファイル名を変更した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'

作業手順

  1. データベースをデタッチします。
  2. データディレクトリのmdf, ldf ファイル名を変更します。
  3. 上記のSQLコマンドを実行して、データベースをアタッチします。

SQL Server 2008 の場合

  1. データベースをデタッチ
  2. /data ディレクトリ内のMDF LDF ファイル名を変更
  3. データベースをアタッチ
  4. アタッチの際にエラがー出るので、ファイル名を変更したMDF LDF ファイル名を指定する。

以上です。

AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2009-06-22