从同一台服务器上另一个数据库的备份创build新的数据库?

我正尝试从同一台服务器上的旧数据库备份创build一个新的数据库。 当使用SQL服务器pipe理工​​作室,并试图从备份恢复到新的数据库我得到这个错误

System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing 'test' database. (Microsoft.SqlServer.Smo) 

search后,我发现这段代码

  RESTORE DATABASE myDB FROM DISK = 'C:\myDB.bak' WITH MOVE 'myDB_Data' TO 'C:\DATA\myDB.mdf', MOVE 'myDB_Log' TO 'C:\DATA\myDB_log.mdf' GO 

我想知道移动语句是否会与数据库混淆,备份来自该服务器?

谢谢,所有帮助表示赞赏。

我认为这更容易。

  • 首先创build一个空白目标数据库。
  • 然后,在“SQL Server Management Studio”还原向导中,查找用于覆盖目标数据库的选项。 它在“选项”选项卡中,被称为“覆盖现有数据库(WITH REPLACE)” 。 核实。
  • 请记住在“文件”页面中select目标文件。

您可以更改向导左侧的“选项卡”(常规,文件,选项)

甚至可以在不创build空白数据库的情况下进行恢复。

在Sql Server Management Studio中,右键单击Databases,然后selectRestore Database … 在这里输入图像说明

在“还原数据库”对话框中, select“源数据库”或“设备”。 一旦select源数据库,SSMS将根据数据库的原始名称填充目标数据库名称。

然后可以更改数据库的名称并input新的目标数据库名称

在这里输入图像说明

使用这种方法,您甚至不需要转到“选项”选项卡,然后单击“覆盖现有数据库”选项。

此外,数据库文件将与您的新数据库名称保持一致,并且您仍然可以select更改文件名称(如果需要)。

检查选项写数据库为我工作:)

在这里输入图像说明

把它想象成一个档案。 MyDB.Bak包含MyDB.mdf和MyDB.ldf。

通过Move来恢复,HerDB基本上从后面抓取MyDB.mdf(和ldf),并将它们复制为HerDB.mdf和ldf。

所以如果你已经有一个服务器实例上的MyDb你正在恢复到它不会被触及。