• Hi,

    i had neglected bulk_logged databases... Here a better script

    ;WITH a AS

    ( SELECT type='D' UNION ALL SELECT 'L' UNION ALL SELECT 'I'

    ), c AS

    ( SELECT b.Name, DATABASEPROPERTYEX(b.Name, 'recovery') as rm, a.type

    FROM a, sys.sysdatabases b

    WHERE DATABASEPROPERTYEX(b.Name, 'recovery') IN ( 'FULL', 'BULK_LOGGED') OR a.type IN ( 'D', 'I')

    ), d AS

    ( SELECT database_name,

    Isnull(Max(recovery_model),'No Backup Taken') AS backup_recovery_model,

    type,

    CONVERT(VARCHAR(17), CONVERT(DATETIME, Max(backup_finish_date), 113)) AS LastBackUpTaken

    FROM msdb.dbo.backupset

    GROUP BY database_name, type

    )

    SELECT c.Name AS DatabaseName,

    c.rm AS database_recovery_model,

    CASE c.type

    WHEN 'D' THEN 'Full'

    WHEN 'I' THEN 'Differential'

    WHEN 'L' THEN 'Log'

    ELSE COALESCE(d.type,'No Backup')

    END AS BackupType,

    Isnull(d.LastBackUpTaken, 'Never') AS LastBackUpTaken

    FROM c LEFT OUTER JOIN d

    ON d.database_name = c.name AND c.type = d.type

    WHERE NOT ( c.type = 'I' AND d.LastBackUpTaken IS NULL) AND c.name <> 'tempdb'

    GROUP BY c.Name, c.type, d.LastBackUpTaken, c.rm, d.type

    ORDER BY c.Name, c.type

    Best regards
    karl