2015年5月22日金曜日

SQL Serverでデータベースの復元に失敗

SQL Serverでデータベースの復元をすると
---
サーバー'XXXX\YYYY'の復元に失敗しました。(Microsoft.SqlServer.SmoExtended)
追加情報:
System.Data.SqlClient.SqlError:ファイル'C:\Program Files\Microsoft SQL Server\...\DATA\ZZZ.MDF'が'AAAA'と'BBBB'から要求されました。WITH MOVE 句を私用して、1つ以上のファイルを再配置できます。
(Microsoft.SqlServer.Smo)
---
というメッセージのダイアログが表示されて、失敗しました。

スクリプトに変えて実行しても
---
ファイル 'xxx.MDF' が 'xxx_Log'(2) と 'xxx_Data'(1) から要求されました。WITH MOVE 句を使用して、1 つ以上のファイルを再配置できます。
メッセージ 3013、レベル 16、状態 1、行 1
RESTORE DATABASE が異常終了しています。
---
のようなメッセージが表示されて復元に失敗します。

原因は復元先のファイル名が行データとログで同じだからでした。
「データベースの復元」のダイアログにあるオプションの中の復元先のファイル名をどちらか変えることで復元できました。