0

我有一系列手工作业:

  1. 创建指定替代.mdf.ldf文件位置的新数据库。
  2. 使用上面定义的替代路径在新数据库中恢复以前的备份并覆盖所有内容

我怎样才能做到这一点?我试过了:

RESTORE DATABASE newdb 
FROM DISK = 'F:\Shared\newdb.bak'
WITH MOVE 'newdb' TO 'G:\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\newdb.mdf',  
     MOVE 'newdb_log' TO 'G:\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\newdb_log.ldf',
replace

但我得到了:

逻辑文件“newdb”不是数据库“newdb”的一部分。
使用 RESTORE FILELISTONLY 列出逻辑文件名。
RESTORE DATABASE 异常终止。

如果我使用FILELISTONLY我会得到另一种类型的错误:

关键字“with”附近的语法不正确。如果此语句是公用表表达式或 xmlnamespaces 子句,则前面的语句必须以分号结束。

4

1 回答 1

1

您需要使用以下方法找出逻辑名称

RESTORE FILELISTONLY 
FROM DISK = 'F:\Shared\newdb.bak'

这将为您提供备份中包含的所有逻辑文件及其逻辑名称。

有了这些信息,您应该能够正确地构建您的RESTORE DATABASE命令。

有关详细信息,请参阅相关的 MSDN SQL Server 联机丛书文档

于 2013-06-05T11:34:58.897 回答