2016-09-07 39 views
0

我已经在下面用来恢复远程服务器中的.bak文件,它不起作用。恢复数据库SQL脚本不能正常工作

restore database Status_backup 
from disk = N'E:\Status bak files\Status_backup_201404302300.bak' 
with 
    move 'Status_backup_201404302300' to N'E:\Files\Status_backup_201404302300.mdf', 
    move 'Status_backup_201404302300' to N'E:\Files\Status_backup_201404302300.ldf' 

我得到以下错误

消息3201,级别16,状态2,第25行无法打开备份设备 'E:\ BAK状态文件\ Status_backup_201404302300.bak'。操作系统 错误3(系统找不到指定的路径。)。 Msg 3013,级别 16,状态1,行25 RESTORE DATABASE正在异常终止。

请提示脚本中有什么错误?

+1

在错误消息中明确表示:“系统找不到指定的路径。”确保备份文件存在于您指定的位置并且可以在运行SQL Server的帐户下访问。 –

+0

在文件夹10中.bak文件存在与日期时间戳。我需要检查哪个帐户? – Amelia

回答

0

您的路径包含空格。添加双引号或将路径名更改为不含空格的内容。

事实证明,你的实际问题是该文件在另一台机器上的位置。您尝试使用本地路径访问远程文件。您应该将备份文件复制到您的本地计算机(您的sql服务器显然是),然后再次尝试使用相应的路径。

+0

用双引号还是相同的错误没有改变。 – Amelia

+0

你只是用双引号替换单引号,还是用双引号括起了该路径,并将整个字符串用单引号括起来? –

+0

用双引号替换单个。那是错的吗? – Amelia

0

试试这个;

RESTORE DATABASE Status_backup 
FROM DISK = 'E:\Status bak files\Status_backup_201404302300.bak' 
WITH 
    MOVE 'Status_backup_201404302300' TO 'E:\Files\Status_backup_201404302300.mdf', 
    MOVE 'Status_backup_201404302300_log' TO 'E:\Files\Status_backup_201404302300.ldf', 
REPLACE