Задача, создать последовательный план обслуживания по созданию бэкапов.
В течении дня делаются разностные бэкапы (раз в час) с момента запуска задания (запускается в начале нового часа только после успешного завершения предыдущего).
Перед тем как бэкап формируется - производятся проверки.
Только при успешном прохождении проверок и завершении всего дня (в 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