Парни, опять вопрос с позиции сис.администратора
Написал для базы процедуру "переливашки" из бекапа в тестовую копию.
Адаптивно под 1 БД, но баз может быть 5,10,20
Не хочется под каждую БД городить огород. Как правильно переменными или циклом это хозяйство разрулить?
USE [master]
ALTER DATABASE [base1] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
declare
@file1 varchar(150),
@file2 varchar(150),
@sunday datetime = getdate()
while datepart(dw,
@sunday) <> 7
set
@sunday = dateadd(dd, -1,
@sunday)
set
@file1 = 'C:\bkp\base1\base1_' + convert(varchar,
@sunday, 112) + '.bak'
set
@file2 = 'C:\bkp\base1\base1_'+convert(varchar, dateadd(dd, -1, getdate()), 112)+'.diff'
RESTORE DATABASE [base1] FROM DISK =
@file1 WITH FILE = 1, MOVE N'base1' TO N'D:\MSSQL\Data\base1.mdf', MOVE N'base1_log' TO N'D:\MSSQL\Data\base1_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5
RESTORE DATABASE [base1] FROM DISK =
@file2 WITH FILE = 1, NOUNLOAD, STATS = 5
ALTER DATABASE [base1] SET MULTI_USER
GO