1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| use Master
go
Create Table #RstDatabases (
databasename sysname
)
Set nocount on
declare @BckPath varchar(255)
declare @RstDATAPath varchar(255)
declare @RstLogPath varchar(255)
declare @BckPrefix varchar(50)
declare @BckExtension varchar(10)
/****************************/
/* Paramétrage */
/****************************/
Set @BckPrefix = 'nom du serveur'+'_' -- same Value than Backup Script
Set @BckExtension = '.bak' -- same Value than BAckup Script
Set @BckPath = 'chemin du backup' --Backup source Path where backup are located
Set @RstDATAPath = 'C:\Mssql2k\MSSQL\Data\' --Restore Path For Data Files
Set @RstLOGPath = 'C:\Mssql2k\MSSQL\Data\' --Restore Path For Log Files
insert into #RstDatabases values('base1')
insert into #RstDatabases values('base2')
/****************************/
PRINT ''
PRINT 'Liste des bases à Restaurer :'
Select * from #RstDatabases
declare @CurrentDB sysname
declare @sql varchar(2000)
declare @bckfileName varchar(255)
declare @rstDataFileName varchar(255)
declare @rstLogFileName varchar(255)
declare @rstDataLogical varchar(255)
declare @rstLogLogical varchar(255)
Set nocount off
Declare curDB Cursor for
Select databasename from #RstDatabases
open curDB
Fetch next from CurDB into @CurrentDB
while @@fetch_status = 0
begin
set @rstDataLogical = 'nom logique base' # MDF file
set @rstLogLogical = 'nom logique log base' # LDF file
Set @bckFileName = @bckPath + @BckPrefix +@CurrentDB + @BckExtension
Set @rstDataFileName = @RstDATAPath + @CurrentDB + '_DATA.mdf'
Set @rstLogFileName = @RstLOGPath + @CurrentDB + '_LOG.mdf'
PRINT '===================================================================='
PRINT '** '+@CurrentDB + ' Restore Started on '+Cast(GetDate() as Varchar)
PRINT ' Backup Source File : '+@bckFileName
PRINT ' Logical DataFileName : ' + @rstDataLogical + char(9) + ' Moved to : '+ @rstDataFileName
PRINT ' Logical LogFileName : ' + @rstLogLogical + char(9) + ' Moved to : '+ @rstLogFileName
Set @sql = 'RESTORE DATABASE '+@CurrentDB + ' FROM DISK=N'''+@Bckfilename+''''
+ ' WITH MOVE '''+@rstDataLogical+''' TO '''+ @rstDataFileName+''''
+ ', MOVE '''+@rstLogLogical +''' TO '''+ @rstLogFileName+''''
+ ', REPLACE'
print @sql
exec (@sql)
PRINT '** '+@CurrentDB + ' Restore Ended on '+Cast(GetDate() as Varchar)
nextDB:
PRINT '===================================================================='
PRINT ''
Fetch next from CurDB into @CurrentDB
end
deallocate CurDB
drop table #RstDatabases |
Partager