Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Как средствами T-SQL узнать запущен ли джоб?  [new]
ааааааааа
Guest
Как средствами T-SQL узнать запущен ли джоб?
Заранее благодарен
22 июн 06, 12:27    [2801510]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
msdb..sp_help_job. Поле current_execution_status резалтсета.
22 июн 06, 12:42    [2801596]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
табличка sysjobhistory в msdb поле run_status + BOL
22 июн 06, 12:50    [2801648]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
aaaaaaaaa
Guest
To SanyL: Спасибо за подсказку, но при запуске джоба в табличке sysjobhistory у меня ничего не появилось. Появилось только тогда, когда я остановил выполнение джоба. Может обьясните(в BOLе как-то маловато про это написано)

To pkarklin: Спасибо за подсказку. Но вот написал:

 create table #Temp1 .....
 insert into #Temp1 
     exec msdb.dbo.sp_help_job @job_name = 'job1', @job_aspect = 'JOB' 

пишет:
Server: Msg 8164, Level 16, State 1, Procedure sp_get_composite_job_info, Line 67
An INSERT EXEC statement cannot be nested.
В чем тут проблема?
22 июн 06, 13:29    [2801915]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
В том, что "An INSERT EXEC statement cannot be nested." Т.е. схп уже содержит insert ...exec.
22 июн 06, 13:34    [2801951]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
а что объяснять


Status of the job execution:
0 = Failed
1 = Succeeded
2 = Retry
3 = Canceled
4 = In progress


должен был быть этот джоб со статусом 4
22 июн 06, 13:34    [2801952]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
ааааааа
Guest
To pkarklin: А можете подсказать как мне проверить запущен ли джоб в конструкции if. Т.е как загнать результат схп в какую нибуть переменную.

SanyL: Я же говорю, что после запуска джоба табличка sysjobhistory у меня пустая, а появляються записи в ней только после остановки джоба.
22 июн 06, 13:44    [2802021]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

так попробуйте:
SELECT a.*
FROM OPENROWSET('SQLOLEDB','(local)';'sa';'',
   'set fmtonly off exec msdb..sp_help_job') AS a
или заглянуть в текст sp_help_job и на его основе написать свою процедуру...

Posted via ActualForum NNTP Server 1.3

22 июн 06, 13:50    [2802063]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
daw опередил. :)
22 июн 06, 14:00    [2802131]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
ааааааа
Guest
daw, pkarklin большое спасибо
22 июн 06, 14:08    [2802183]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
newby2
Guest
daw

так попробуйте:
SELECT a.*
FROM OPENROWSET('SQLOLEDB','(local)';'sa';'',
   'set fmtonly off exec msdb..sp_help_job') AS a


мне не доступен пароль sa.
подскажите, как можно сделать вызов через trusted connection?
16 окт 07, 15:16    [4800075]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Бывалый ЗЫ
Member

Откуда: МСК
Сообщений: 81
Уважаемый newby2:
Читай help!!!
Execute permissions default to the public role in the msdb database. A user who can execute this procedure and is a member of the sysadmin fixed role can also create, delete, or update a job, job step, job category, job schedule, job server, task, or job history information. A user who is not a member of the sysadmin fixed role can use sp_help_job to view only the jobs he/she owns.
16 окт 07, 17:17    [4801177]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
newby2
Guest
Бывалый ЗЫ
Уважаемый newby2:
Читай help!!!
Execute permissions default to the public role in the msdb database. A user who can execute this procedure and is a member of the sysadmin fixed role can also create, delete, or update a job, job step, job category, job schedule, job server, task, or job history information. A user who is not a member of the sysadmin fixed role can use sp_help_job to view only the jobs he/she owns.

спасибо, Бывалый. я это знаю.
меня интересует как в запросе, предложенным daw, не вводить логин и пароль.
17 окт 07, 10:31    [4803383]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Например, так:

SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=(local);Trusted_Connection=yes;',
     'SELECT GroupName, Name, DepartmentID
      FROM AdventureWorks.HumanResources.Department
      ORDER BY GroupName, Name') AS a;
17 окт 07, 10:35    [4803426]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
newby2
Guest
pkarklin
Например, так:

SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=(local);Trusted_Connection=yes;',
     'SELECT GroupName, Name, DepartmentID
      FROM AdventureWorks.HumanResources.Department
      ORDER BY GroupName, Name') AS a;


спасибо огромное, pkarklin.
а то я уже начала писать свою процедуру.
Хорошо что есть sql.ru и талантливые люди в нем.
17 окт 07, 10:42    [4803494]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
ребята,
как написать скрипт, кот.выводит только ту инфу (при выполнении msdb..sp_help_job),
где
current_execution_status
0 = Failed или 3 = Canceled ???
17 мар 08, 14:43    [5419034]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
где то я на форуме видел сам скрипт, через селект....подскажиет
17 мар 08, 15:03    [5419210]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
где то я на форуме видел сам скрипт, через селект....подскажиет

Самому взглянуть на текст msdb..sp_help_job не судьба ?
17 мар 08, 15:05    [5419215]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
ребята,
а если статус =0 или 3
0 = Failed
3 = Canceled

то как мне запустить этот джоб?
18 мар 08, 14:16    [5424086]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
sp_start_job
18 мар 08, 14:19    [5424112]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
sp_start_job
'job_id' так?
18 мар 08, 14:29    [5424184]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
sp_start_job
'job_id' так?

Хелп не установлен что ли ?
18 мар 08, 14:31    [5424200]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
ну подскажите, пожалуйста
хелпа нет
18 мар 08, 14:41    [5424288]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
ну подскажите, пожалуйста
хелпа нет

А в QA в дереве объектов открыть список параметров процедуры тоже не судьба ?
18 мар 08, 14:43    [5424298]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
dimakz
ну подскажите, пожалуйста
хелпа нет


USE msdb
GO
sp_helptext 'sp_start_job'
18 мар 08, 14:44    [5424315]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
делаю
EXECUTE @retval = msdb.dbo.sp_sqlagent_notify @op_type   =  'update_statistics'
не получается
19 мар 08, 13:30    [5429826]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
А что должно получиться по-вашему ?
19 мар 08, 13:33    [5429851]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
и так делаю
EXECUTE msdb.dbo.sp_sqlagent_notify @op_type = N, @job_name= 'update_statistics'
не получается
19 мар 08, 13:33    [5429855]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
и так делаю
EXECUTE msdb.dbo.sp_sqlagent_notify @op_type = N, @job_name= 'update_statistics'
не получается

Вы всегда сами решаете какие имена и значения должны быть у параметров ? Можно узнать, по какой методике вы это делаете ? От балды, с потолка или скажем из пальца ?
19 мар 08, 13:36    [5429886]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
ну не знаю я
помоги пожалуйста
19 мар 08, 13:38    [5429910]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
ну не знаю я
помоги пожалуйста

Для вас проблема открыть хелп ? Или процедуру в QA ?
19 мар 08, 13:39    [5429920]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Я пользуюсь sp_help_jobactivity ( в 2005). Там никаких встроенных Insert ...exec нет, результаты
прекрасно сохраняются в таблицу.
19 мар 08, 13:46    [5429986]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
//процедуру в QA ///
мне нужно делать это через сам запрос(sql)

открыть в QA и запустить с помощью клика - я могу но мне это не нужно,
хелп читал, ничего не получается
19 мар 08, 13:53    [5430049]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
//процедуру в QA ///
мне нужно делать это через сам запрос(sql)

открыть в QA и запустить с помощью клика - я могу но мне это не нужно,
хелп читал, ничего не получается

Мда. В QA есть дерево объектов. В котором для процедуры можно увидеть список параметров. А также получить текст процедуры

Не получается читать хелп - это клиника.
19 мар 08, 13:56    [5430067]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
Glory подскажи поджалуйста как сделать
19 мар 08, 14:02    [5430115]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
Glory подскажи поджалуйста как сделать

Сделать что ? Запустить недокументированную процедуру ? Или как прочитать хелп ?
19 мар 08, 14:04    [5430141]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
dimakz
Member

Откуда:
Сообщений: 1574
как с помощью sql команды запустить джоб
19 мар 08, 14:15    [5430237]     Ответить | Цитировать Сообщить модератору
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
Glory
Member

Откуда:
Сообщений: 104760
dimakz
как с помощью sql команды запустить джоб

Говорил же уже - sp_start_job
Что непонятного ?
19 мар 08, 14:17    [5430249]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как средствами T-SQL узнать запущен ли джоб?  [new]
RegisteredUser
Member

Откуда:
Сообщений: 585
казалось бы тривиальная задача а на ее решение у меня день ушел.
вот так у меня гарантированно работает:


N'ROSS-Test-pb_Test_snap-1' - это имя моего job

DECLARE	@return_value int

-- эта часть для тестирования
EXEC	@return_value = msdb.dbo.sp_start_job N'ROSS-Test-pb_Test_snap-1'
SELECT	'Return Value start' = @return_value, 'DT' = GETUTCDATE()

go
WAITFOR DELAY '00:00:02';
go

-- вот эта часть вам понадобится точно

-- 1. проверяю запущен ли job
if EXISTS(
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=(local);Trusted_Connection=yes;',
   'set fmtonly off exec msdb..sp_help_job @job_name = N''ROSS-Test-pb_Test_snap-1'',@execution_status = 1 ') AS a
)
begin
-- 2. если запущен, то пробую его остановить
		print 'try stop job'
		DECLARE	@return_value int
		EXEC	@return_value = msdb.dbo.sp_stop_job N'ROSS-Test-pb_Test_snap-1'
-- 3. жду 10 сек
		WAITFOR DELAY '00:00:10';
-- 4. запускаю джоб
		print 'try start job again'
		EXEC	@return_value = msdb.dbo.sp_start_job N'ROSS-Test-pb_Test_snap-1'
		SELECT	'Return Value start' = @return_value, 'DT' = GETUTCDATE()

end
else
print 'job not run'

можно еще чуток подрихтовать для краткости, но это уж сами там...
30 авг 09, 01:38    [7594397]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить