2011-11-03 101 views
5

我不会恢复我的数据库,但位置路径不一样。我怎样才能改变这个路径(分区)?恢复数据库并更改MDF文件的位置

RESTORE DATABASE [MY_DATABASE] 
FROM DISK = 'C:\Content.bak' 
WITH FILE = 1, 
NOUNLOAD, 
STATS = 10 

错误信息:文件

消息5133,级别16,状态1,行1
目录查找 “F:.... \ Content01.mdf” 失败的操作系统错误3(无法检索此错误的文本。 原因:15100)。
Msg 3156,Level 16,State 3,Line 1
文件'Content01'无法恢复到'F:.... \ Content01.mdf'。使用WITH MOVE标识文件的有效位置。
消息5133,级别16,状态1,行1
文件“H:.... \ Content01_log.LDF”的目录查找失败,操作系统错误3(无法检索此 错误的文本。 :15105)。
Msg 3156,Level 16,State 3,Line 1
文件'Content01_log'无法恢复到'H:.... \ Content01_log.LDF'。使用WITH MOVE标识文件的有效位置 。
消息3119,级别16,状态1,行1
规划RESTORE语句时发现问题。先前的消息提供了细节
消息3013,级别16,状态1,行1
RESTORE DATABASE正在异常终止。

谢谢。

回答

12
RESTORE DATABASE [My_Database] 
FROM DISK = 'C:\Content.bak' 
WITH MOVE 'MyDatabase_Data' TO 'C:\Data\MyDatabase_Data.mdf', 
MOVE 'MyDatabase_Log' TO 'C:\Data\MyDatabase_Log.ldf', 
REPLACE, 
STATS=10 
1

如果有人因为要用多个文件还原数据库而来到这里,则每个目标文件都需要一个新名称。使用SQL Server 2008 R2,gui没有提供明确的线索,也没有自动解决它。