我正在尝试将数据库从磁盘还原到最近的备份。备份中有四个备份集。我想恢复最近的一张(今天拍的)。我需要能够用 TSQL 做到这一点。
以下脚本有效:
RESTORE DATABASE DatabaseName
FROM DISK = 'D:\Data\DatabaseName.bak' WITH FILE = 4, REPLACE
但是,随着进行更多备份,文件位置将在未来发生变化。
有没有办法在不指定确切文件号的情况下将备份恢复到文件位置?类似“WITH FILE = most_recent_backup”的东西
该
RESTORE HEADERONLY
命令将为您提供文件中所有备份集的数据列表。从那里您可以选择最大值Position
并将其传递给FILE
参数。http://msdn.microsoft.com/en-us/library/ms178536.aspx
不要将所有备份放在一个文件中。如果您这样做并且该文件已损坏,那么您刚刚丢失了所有备份。
而是在使用 BACKUP DATABASE 和 RESTORE DATABASE 命令时使用动态文件名将每个备份放入其自己的文件中。
马特的回答让我朝着正确的方向前进。在选择最大位置之前,我需要存储结果集。我的搜索使我找到了这个解决方案http://sqlforums.windowsitpro.com/web/forum/messageview.aspx?catid=74&threadid=93926&enterthread=y