Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 schedule больше 60 минут, как сделать?  [new]
abrashka
Member

Откуда:
Сообщений: 521
День добрый!
Нужно дать возможность пользователю самому регулировать частоту запуска джоба, для этого был придуман интерфейс, который получает величину в минутах, удаляет джоб и создает его с @freq_subday_interval равной полученному параметру.
Все вроде сходится, пока не вводят величину больше 60...
Как сделать так, чтоб была возможность запускать джоб каждые 90 минут например?

Спасибо!
5 сен 12, 17:54    [13119734]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Наверное потому, что 60 минут - это уже 1 час ?
И надо менять и @freq_subday_type ?
5 сен 12, 18:19    [13119887]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
Glory
Member

Откуда:
Сообщений: 104751
И в чем собственно выражается ваше "Все вроде сходится, пока не вводят величину больше 60.." ?
5 сен 12, 18:24    [13119904]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
abrashka
Member

Откуда:
Сообщений: 521
Glory
И в чем собственно выражается ваше "Все вроде сходится, пока не вводят величину больше 60.." ?


пока вводят значение до 60- то создается Job, можно войти в его свойства и т.п.
если вводят величину, скажем 90, то Job тоже создается, но в свойства scheduler-а уже зайти нельзя, получаем ошибку. Не уверен или джоб будет работать с такой величиной.

Еслиб все возможные значения, которые больше часа, были кратны 60, то можно было менять @freq_subday_type, но пользователь может задать любое значение, например 69, и это его право.
5 сен 12, 18:44    [13120029]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Пишите джоб с бесконечным циклом. В нем проверяете, что если с последнего запуска процедуры/джоба/ракеты на луну прошло больше минут, чем желал пользователь, то запускаете процедуру/джоб/ракету на луну.

Как-то так.
5 сен 12, 18:49    [13120060]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
abrashka,

Не пользуйтесь GUI -- его авторы обделены фантазией и не смогли себе вообразить интервал в минутах, больше 60.

Работайте через процедуры управления заданиями, там таких проблем нет.
5 сен 12, 19:10    [13120175]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
komrad
Member

Откуда:
Сообщений: 5758
invm
abrashka,

Не пользуйтесь GUI -- его авторы обделены фантазией и не смогли себе вообразить интервал в минутах, больше 60.

+1
5 сен 12, 19:48    [13120276]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
Glory
Member

Откуда:
Сообщений: 104751
abrashka
пока вводят значение до 60- то создается Job, можно войти в его свойства и т.п.
если вводят величину, скажем 90, то Job тоже создается, но в свойства scheduler-а уже зайти нельзя, получаем ошибку. Не уверен или джоб будет работать с такой величиной.

Вот фрагмент скрипта, сгенерированного студией
  -- Add the job schedules
  EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'x', @enabled = 0, @freq_type = 8, @active_start_date = 19900101, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 4, @freq_subday_interval = 93, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @active_end_time = 235959
  IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 

При его выполнении ничего описанного вами не происхолит. И джоб и расписание функционируют и доступны в студии.
Проверяйте свой скрипт.
6 сен 12, 09:13    [13121632]     Ответить | Цитировать Сообщить модератору
 Re: schedule больше 60 минут, как сделать?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
abrashka
пока вводят значение до 60- то создается Job, можно войти в его свойства и т.п.
если вводят величину, скажем 90, то Job тоже создается, но в свойства scheduler-а уже зайти нельзя, получаем ошибку.
Вы покажите версию сервера и SSMS
Может, достаточно будет сервис-пак или фикс накатить.
6 сен 12, 11:54    [13122790]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить