Age Bases SQL Server

Le script suivant permet de retrouver les dates de sauvegarde et restauration des BD du serveur ms SQL Server courant.

------------------ Selection de toutes les bases non systeme
     
    select name 
    into #DBases
    from master.dbo.sysdatabases
    where name not in ('master','tempdb','Northwind','model','msdb','pubs')
 
-----------------------------------------------------------------------------
 
------------------Interrogation de chaque bases de données
 
declare @resultat table (
[Base locale] varchar(255),
[Source Backup] varchar(255),
[restauré] varchar(255),
[Backup du] varchar(255),
[Restauré par] varchar(255),
[Historisé par] varchar(255)
)
 
 
create table #tmp (data varchar(255))
 
declare curseur cursor for select name from #dbases
open curseur 
declare @name varchar(255)
declare @version varchar(255)
 
 
   fetch next from curseur into @name
    while @@fetch_status = 0
      begin
 
        ------------Requete sur la base en cours
        truncate table #tmp
        insert into #tmp exec ('select 0')
         
        set @version=''
        select @version=data from #tmp
 
        insert into @resultat
        SELECT 
        --distinct
        top 1
            destination_database_name [Base locale],
            server_name+'.'+b.database_name [source],
            convert(varchar(255),restore_date,113) [Restauration],
            convert(varchar(255),backup_start_date,113) [dump du],
            --machine_name [serveur source]
            --b.database_name [Base Source],
            --physical_name ,
            h.user_name [Restauration],
            b.user_name [Backup]
         
        FROM msdb.dbo.RestoreHistory h 
            INNER JOIN msdb.dbo.BackupSet b ON h.backup_set_id = b.backup_set_id
            INNER JOIN msdb.dbo.BackupFile f ON f.backup_set_id = b.backup_set_id
        WHERE destination_database_name = @name -- db_name()
        order by restore_date desc
 
        fetch next from curseur  into @name
      end
 
close curseur 
deallocate curseur 
 
 
select * from @resultat
 
drop table #tmp
drop table #DBases

 

CatégoriesSql

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *