@ITF

На сколько корректно составлен мой запрос?

Задача, создать последовательный план обслуживания по созданию бэкапов.
В течении дня делаются разностные бэкапы (раз в час) с момента запуска задания (запускается в начале нового часа только после успешного завершения предыдущего).
Перед тем как бэкап формируется - производятся проверки.
Только при успешном прохождении проверок и завершении всего дня (в 23:00) должно запуститься следующее задание.

DECLARE @RunCounter int
DECLARE @MinDelay varchar(8)
DECLARE @CurDate datetime = GETDATE()

/* отсрочка перед запуском до начала ближайшего часа */
SET @MinDelay = '00:' + CAST(60 - DATEPART(MINUTE, @CurDate) AS VARCHAR) 
/* сколько раз запуститься скрипт (от следующего часа до конца дня") */
SET @RunCounter = DATEDIFF(hh, GETDATE(), DATEADD(hh, 23, DATEADD(dd, 0, DATEDIFF(dd, 0, @CurDate)))) 

WAITFOR DELAY @MinDelay

WHILE @RunCounter > 0
  BEGIN
  
	/* тут логика проверок и разностный бэкап */
	
	SET @RunCounter -= 1
	WAITFOR DELAY '01:00'
  END
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы