Перейти к содержимому

Как сделать проверку выполнения задания. версия 2

DECLARE @a NVARCHAR(255)
SET @a = 'SSAS_LSBackup_ax_molniya' --для проверки можно заменить на S0030-ax_molniya-1 (оно всегда запущенно, это задание репликации)
WHILE @a = 'SSAS_LSBackup_ax_molniya' --для проверки можно заменить на S0030-ax_molniya-1 (оно всегда запущенно, это задание репликации)
BEGIN
WAITFOR DELAY '00:00:01.000' --ждем в цикле. В рабочем коде выставить нужное время
set nocount on
IF (not object_id('tempdb..#z') is null) -- проверка наличия темповой таблицы
	drop table #z -- сброс темповой таблицы

--- выборка работающих заданий на 0030
SELECT ja.job_id, j.name as job_name, ja.start_execution_date, isNull(last_executed_step_id,0) + 1 as current_executed_step_id,	js.step_name
	INTO #z FROM s0030.msdb.dbo.sysjobactivity ja left join s0030.msdb.dbo.sysjobhistory jh on ja.job_history_id = jh.instance_id inner join s0030.msdb.dbo.sysjobs j on ja.job_id = j.job_id inner join s0030.msdb.dbo.sysjobsteps js on ja.job_id = js.job_id and isNull(ja.last_executed_step_id,0) + 1 = js.step_id
		WHERE ja.session_id = (select top 1 session_id from s0030.msdb.dbo.syssessions order by agent_start_date desc) and start_execution_date is not null and stop_execution_date is null	

IF exists( select job_name from #z where job_name = 'SSAS_LSBackup_ax_molniya' ) --для проверки можно заменить на S0030-ax_molniya-1 (оно всегда запущенно, это задание репликации)
	begin
	SET @a = 'SSAS_LSBackup_ax_molniya' --для проверки можно заменить на S0030-ax_molniya-1 (оно всегда запущенно, это задание репликации)
	PRINT N'Совпало' -- в рабочем коде нужно убрать
	end
ELSE
	begin
	SET @a = 'not SSAS_LSBackup_ax_molniya' --для проверки можно заменить на not S0030-ax_molniya-1 
	PRINT N'не Совпало' -- в рабочем коде нужно убрать
	end	
END
PRINT N'Выход из цикла'; -- в рабочем коде нужно убрать
GO
--SELECT * FROM #z
--exec s0030.msdb.dbo.sp_help_job

 

Similar Posts:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *