There’s a whole bunch of scripts out there that show the history of when dbcc checkdb was last run. Many are inaccurate. Here’s the one I use …
--checkdb_history.sql CREATE TABLE #DBInfo_LastKnownGoodCheckDB ( ParentObject varchar(1000) NULL, Object varchar(1000) NULL, Field varchar(1000) NULL, Value varchar(1000) NULL, DatabaseName varchar(1000) NULL ) DECLARE csrDatabases CURSOR FAST_FORWARD LOCAL FOR SELECT name FROM sys.databases WHERE name NOT IN ('tempdb') OPEN csrDatabases DECLARE @DatabaseName varchar(1000), @SQL varchar(8000) FETCH NEXT FROM csrDatabases INTO @DatabaseName WHILE @@FETCH_STATUS = 0 BEGIN --Create dynamic SQL to be inserted into temp table SET @SQL = 'DBCC DBINFO (' + CHAR(39) + @DatabaseName + CHAR(39) + ') WITH TABLERESULTS' --Insert the results of the DBCC DBINFO command into the temp table INSERT INTO #DBInfo_LastKnownGoodCheckDB (ParentObject, Object, Field, Value) EXEC(@SQL) --Set the database name where it has yet to be set UPDATE #DBInfo_LastKnownGoodCheckDB SET DatabaseName = @DatabaseName WHERE DatabaseName IS NULL FETCH NEXT FROM csrDatabases INTO @DatabaseName END --Get rid of the rows that I don't care about DELETE FROM #DBInfo_LastKnownGoodCheckDB WHERE Field != 'dbi_dbccLastKnownGood' SELECT Distinct DatabaseName, Value as LastGoodCheckDB--, --DATEDIFF(dd, CAST(Value AS datetime), GetDate()) AS DaysSinceGoodCheckDB, --DATEDIFF(hh, CAST(Value AS datetime), GetDate()) AS HoursSinceGoodCheckDB FROM #DBInfo_LastKnownGoodCheckDB ORDER BY DatabaseName DROP TABLE #DBInfo_LastKnownGoodCheckDB