有选择地恢复数据库

时间:2010-01-20 17:57:32

标签: sql sql-server

我一直在使用此查询:

BACKUP DATABASE RentalEase
TO DISK = 'C:\RentalEaseBackup\RentalEase.bak'
WITH COPY_ONLY;
GO

备份我的数据库。有人删除了某些内容,所以现在我必须从之前的某个时间点恢复它,但是我不想覆盖新的更改(删除除外)。

我在想我能做到这一点,将备份作为新数据库附加到SQL Server,然后执行必要的查询以移动几个已删除的行。但是,它不会附加RentalEase.bak文件,因为它表示它不是主数据库文件。

如何附加数据库备份以便我可以针对它运行SQL查询?

3 个答案:

答案 0 :(得分:2)

您必须恢复数据库,不能附加备份文件

RESTORE DATABASE TestDB
    FROM DISK = 'c:\Northwind.bak'
    WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
    MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'

Full syntax here

答案 1 :(得分:2)

将数据库还原到不同的数据库名称,然后您可以在两个数据库之间执行任何操作(祝您好运!)

答案 2 :(得分:0)

创建一个名为RentalEase2的新数据库,恢复将如下所示

RESTORE DATABASE [RentalEase2] FROM  DISK = N'C:\RentalEaseBackup\RentalEase.bak'
WITH  FILE = 1, NOUNLOAD,  STATS = 10
GO