sql-从同一服务器上另一个数据库的备份创建新数据库?

我试图从同一服务器上数据库的旧备份创建一个新数据库。使用SQL Server Management Studio并尝试从备份还原到新数据库时,出现此错误

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

谷歌搜索后,我发现了这段代码

    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

我想知道move语句是否会使备份来自该服务器的数据库混乱?

谢谢,所有帮助。

Flywheel asked 2019-10-07T22:31:31Z
4个解决方案
113 votes

我认为这比这容易。

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

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

dani herrera answered 2019-10-07T22:32:08Z
39 votes

甚至完全不用创建空白数据库就可以还原。

在Sql Server Management Studio中,右键单击“数据库”,然后选择“还原数据库...”。enter image description here

在“还原数据库”对话框中,照常选择“源数据库”或“设备”。选择源数据库后,SSMS将基于数据库的原始名称填充目标数据库名称。

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

enter image description here

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

同样,数据库文件将与您的新数据库名称一致地命名,并且如果需要,您仍然可以选择更改文件名。

Catch22 answered 2019-10-07T22:33:04Z
8 votes

检查选项覆盖数据库对我有用:)

enter image description here

Kbdavis07 answered 2019-10-07T22:33:27Z
1 votes

可以将其视为存档。MyDB.Bak包含MyDB.mdf和MyDB.ldf。

使用Move进行还原,可以说HerDB基本上是从备份中获取MyDB.mdf(和ldf),并将它们复制为HerDB.mdf和ldf。

因此,如果您在服务器实例上已经具有MyDb,则还原到该实例将不会受到影响。

Tony Hopkinson answered 2019-10-07T22:34:04Z
translate from https://stackoverflow.com:/questions/10299811/creating-new-database-from-a-backup-of-another-database-on-the-same-server