Si necesitamos obtener la ultima fecha de respaldo completo de una BD, podemos utilizar el siguiente script.
Espero que les sea util.
Saludos.
declare @dbname varchar(256)
declare @status varchar(128)
declare dbs_cursor cursor for
select name ,status = case
when status > 31 then 'BD en read only o en Offline'
else 'Normal'
end
from master..sysdatabases
open dbs_cursor
fetch next from dbs_cursor into @dbname,@status
while @@fetch_status = 0
begin
SELECT @dbname,@status,
ISNULL(Convert(char(10), MAX(backup_finish_date), 101), 'Never') Last_Backup
FROM master.dbo.sysdatabases B
LEFT OUTER JOIN msdb.dbo.backupset A
ON A.database_name = B.name
AND A.type = 'D'
WHERE B.name = @dbname
fetch next from dbs_cursor into @dbname,@status
END
close dbs_cursor
deallocate dbs_cursor
Espero que les sea util.
Saludos.
Hola disculpa el atrevimiento le modifique la base de datos de la que consulta tu script para sql 2005 y 2008 obteniendo el status de la base de datos sin necesidad de un case
ResponderBorrardeclare @dbname varchar(256)
declare @status varchar(128)
declare dbs_cursor cursor for
select name ,state_desc
from master.sys.databases
open dbs_cursor
fetch next from dbs_cursor into @dbname,@status
while @@fetch_status = 0
begin
SELECT @dbname,@status,
ISNULL(Convert(char(10), MAX(backup_finish_date), 101), 'Never') Last_Backup
FROM master.dbo.sysdatabases B
LEFT OUTER JOIN msdb.dbo.backupset A
ON A.database_name = B.name
AND A.type = 'D'
WHERE B.name = @dbname
fetch next from dbs_cursor into @dbname,@status
END
close dbs_cursor
deallocate dbs_cursor
espero les sirva
saludos.