我试图恢复我的数据库的SQL Server备份文件,但它抛出一个错误如下:

备份集保存现有数据库以外的数据库的备份

我的数据库是SQL Server 2008,备份文件是2005年的。

会有什么问题呢?


当前回答

我确定这个问题与文件和文件夹权限有关。

其他回答

这通常是由于版本不兼容造成的。 按照以下步骤来解决:

步骤1:使用首选名称创建数据库。(在我们的例子中是AdventureWorks)

步骤2:写单击数据库,然后单击Tasks >> Restore >> database…

第三步:在恢复界面进入第三个选项选择。现在选择“覆盖现有数据库(WITH REPLACE)”复选框

步骤4:单击“确定”。它应该能够成功地恢复数据库。

注意:当你用REPLACE恢复一个数据库时,它会覆盖旧的数据库。

:

1)在使用RESTORE命令时使用WITH REPLACE(如果使用GUI,则在Options ->覆盖现有数据库(WITH REPLACE))。

2)删除冲突的旧数据库,使用restore命令重新恢复。

查看链接了解更多细节。

同样重要的是,要确保您的数据库名称与您试图恢复的备份中的数据库名称相匹配。如果不匹配,则会得到相同的错误。

USE [master];
GO

CREATE DATABASE db;
GO

CREATE DATABASE db2;
GO

BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION;
GO

RESTORE DATABASE db2
  FROM DISK = 'c:\temp\db.bak'
  WITH REPLACE,
  MOVE 'db' TO 'c:\temp\db2.mdf',
  MOVE 'db_log' TO 'c:\temp\db2.ldf';

在选项中,将“还原为”文件名称更改为新的数据库mdf和ldf。它引用源数据库的.mdf和.ldf文件。