Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как в SQL проверить запущен ли определенный Job  [new]
^^^
Guest
Подскажите пожалуйста, как понять статус (запущен) определенного SQL Job-а?
20 сен 16, 11:02    [19686374]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL проверить запущен ли определенный Job  [new]
komrad
Member

Откуда:
Сообщений: 5496
^^^,

гугл знает всё

http://www.sqlmatters.com/Articles/Checking the status of SQL Server Agent jobs.aspx
20 сен 16, 11:12    [19686425]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL проверить запущен ли определенный Job  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4392
Посмотрите в сторону [msdb].[dbo].[sysjobhistory]
20 сен 16, 11:12    [19686431]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL проверить запущен ли определенный Job  [new]
iap
Member

Откуда: Москва
Сообщений: 47047
В последний раз я применял что-то такое:
IF EXISTS
(
 SELECT *
 FROM msdb.dbo.sysjobactivity a
 JOIN msdb.dbo.sysjobs j ON a.job_id=j.job_id
 WHERE j.name=N'Имя джоба' AND a.stop_execution_date IS NULL
)
...
Удобно тем, что есть доступ к некоторым дополнительным параметрам: времени старта, времени завершения и т.п. - см. msdb.dbo.sysjobactivity
20 сен 16, 11:17    [19686464]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL проверить запущен ли определенный Job  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
declare @CurrentJobs table
	(
	[Job ID] uniqueidentifier,
	[Last Run Date] varchar(255),
	[Last Run Time] varchar(255),
	[Next Run Date] varchar(255),
	[Next Run Time] varchar(255),
	[Next Run Schedule ID] varchar(255),
	[Requested To Run] varchar(255),
	[Request Source] varchar(255),
	[Request Source ID] varchar(255),
	[Running] varchar(255),
	[Current Step] varchar(255),
	[Current Retry Attempt] varchar(255),
	[State] varchar(255)
	);

insert into @CurrentJobs
		EXECUTE master.dbo.xp_sqlagent_enum_jobs 1,'';


if  exists(
						select *
						from @CurrentJobs cj
						join msdb.dbo.sysjobs sj
						on
						cj.[Job ID]= sj.job_id
						where Running=1
						and sj.name = 'Имя джобы')

У меня такое работает
20 сен 16, 11:42    [19686666]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL проверить запущен ли определенный Job  [new]
^^^
Guest
Всем спасибо!
20 сен 16, 16:27    [19688329]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить