在 SQL Server 2005 中还原差异备份

Sha*_*i S 3 sql-server-2005 sql-server backup restore

通过在我的应用程序中执行以下行,我创建了我的数据库的完整备份:

Dim Query As String = "backup database Ari to disk='G:\Documents and Settings\i\Desktop\BKAR\" & MyTime.getFullCurrentDate.Replace("/", "") & ".Bak'"
Run Code Online (Sandbox Code Playgroud)

*.bak文件创建成功。

然后我在另一个名为 test 的数据库上恢复它,它没问题。然后我通过以下代码创建了一个差异备份:

Dim Query As String = "BACKUP DATABASE Ari TO DISK='G:\Documents and Settings\i\Desktop\BKAR\" & MyTime.getFullCurrentDate.Replace("/", "") & ".Bak'" & "WITH DIFFERENTIAL"
Run Code Online (Sandbox Code Playgroud)

它创建了一个*.bak文件,但是当我尝试在我作为 test 提到的数据库上恢复它时,我收到以下错误: 在此处输入图片说明 请帮我解决这个问题。

Mar*_*ith 6

在恢复一系列备份(差异和日志)时,您指定NORECOVERY. 这使数据库处于可以接受进一步还原的状态,而不是恢复它以供使用。

RESTORE DATABASE MyDb FROM DISK = '<path>\MyDb_FULL.bak' WITH NORECOVERY;
RESTORE DATABASE MyDb FROM DISK = '<path>\MyDb_DIFF.bak' WITH NORECOVERY;

-- Repeat following for each transaction log to restore if applicable
RESTORE LOG MyDb FROM DISK = '<path>\MyDb_201303050900_LOG.bak' WITH NORECOVERY;

RESTORE DATABASE MyDb WITH RECOVERY;
Run Code Online (Sandbox Code Playgroud)