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

Fly*_*eel 64 sql database sql-server-2008

我正在尝试从同一服务器上的旧数据库备份创建一个新数据库.当使用SQL Server管理工作室并尝试从备份还原到新数据库时,我收到此错误

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

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

    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
Run Code Online (Sandbox Code Playgroud)

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

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

dan*_*era 118

我认为这比这更容易.

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

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

  • 非常感谢,我之前尝试过使用Management Studio中的"替换"选项但是没有使用"文件"部分.你建议的是什么,数据库现在正在创建. (2认同)

Cat*_*h22 49

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

在Sql Server Management Studio中,右键单击Databases并选择Restore Database ... 在此输入图像描述

在"还原数据库"对话框中,正常选择"源数据库"或"设备".选择源数据库后,SSMS将根据数据库的原始名称填充目标数据库名称.

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

在此输入图像描述

使用此方法,您甚至无需转到"选项"选项卡并单击"覆盖现有数据库"选项.

此外,数据库文件将与您的新数据库名称一致地命名,如果需要,您仍然可以选择更改文件名.

  • 我希望我能不止一次地投票!这实际上是我正在寻找的答案,而不是更多投票答案中描述的变通方法! (3认同)
  • 这是最好的选择之一! (2认同)
  • 该解决方案对我有用,但是仅当我专门将“文件”选项卡中的“还原为”文件名更改为尚不存在的名称时。否则,我将收到“文件已在使用中,无法覆盖”的还原失败错误消息。 (2认同)
  • 这对我也有用!:) 我必须禁用“在恢复之前进行尾日志备份”,因为我收到了此处所述的错误 /sf/answers/2064790311/ (2认同)

Kbd*_*s07 8

检查写入数据库的选项对我有用:)

在此输入图像描述