Wednesday, May 27, 2015

How to query last restore date of each data base in SQL Server

Below query shows the last database restore point information.

WITH LastRestores AS
(
SELECT
    DatabaseName = [d].[name],
    [d].[create_date] ,
    [d].[compatibility_level],
    [d].[collation_name] ,
    r.*,
    RowNum = ROW_NUMBER() OVER (PARTITION BY d.Name ORDER BY r.[restore_date] DESC)
FROM master.sys.databases d
LEFT OUTER JOIN msdb.dbo.[restorehistory] r ON r.[destination_database_name] = d.Name
)
SELECT *
FROM [LastRestores]
WHERE [RowNum] = 1