Sql server 查找SQL Server数据库是否存在有效的完整备份

Sql server 查找SQL Server数据库是否存在有效的完整备份,sql-server,tsql,database-backups,Sql Server,Tsql,Database Backups,我想为给定的数据库查找是否存在可用于差异或跨日志备份的有效完整备份。当然,仅仅有一个完整的备份是不够的,它必须能够开始一个链。为此,我希望消除恢复模型更改之前创建的备份,以及仅复制备份。请仅限TSQL。没有GUI解释。我查看了Ola Hallengren备份脚本的源代码,并得出以下结论: SELECT CASE WHEN last_log_backup_lsn IS NULL THEN 0 ELSE 1 END AS log_backup_possib

我想为给定的数据库查找是否存在可用于差异或跨日志备份的有效完整备份。当然,仅仅有一个完整的备份是不够的,它必须能够开始一个链。为此,我希望消除恢复模型更改之前创建的备份,以及仅复制备份。请仅限TSQL。没有GUI解释。

我查看了Ola Hallengren备份脚本的源代码,并得出以下结论:

SELECT  CASE WHEN last_log_backup_lsn IS NULL THEN 0
             ELSE 1
        END AS log_backup_possible
FROM    sys.database_recovery_status
WHERE   database_id = DB_ID('foobar');
如果最后的日志备份不为空,则可以进行日志备份。此外,差异备份足以开始进行日志备份


在其他新闻中,我提到了上面Ola Hallengren出色的维护脚本。具体来说,他在备份存储过程(@ChangeBackupType)中有一个参数,可以为您处理所有这些(因此您不必重新发明轮子)。

Ben,这太棒了。我不确定我是否希望这种差异没有一个完整的,但值得注意的是。非常感谢。哦,别担心,如果没有一个完整的答案,你不可能有差异。我只是说,如果你已经有一个完整的,没有必要采取另一个只是为了开始一个日志链;一个不同的答案就足够了。另外,如果你发现这个答案回答了你的问题,你介意把它标记为被接受的答案吗?这有助于其他人知道这确实是你所寻找的。而且,它也会让我的假互联网点数增加一点我明白你在说什么了。再次感谢你,本!