从同一台服务器上另一个数据库的备份创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你正在恢复到它不会被触及。