2013-08-19 108 views
4

我有一组SQL服务器作业,我希望他们的计划是动态的,即我希望下一个运行日期来自表格。SQL服务器作业动态计划

我试过更新next_run_datesysjobschedules表和next_scheduled_run_datesysjobactivity表,但这并没有做任何事情。

我该怎么办?

回答

3

我想你可以用 - sp_update_schedule来更新时间表。

 
sp_update_schedule 
    { [ @schedule_id = ] schedule_id 
     | [ @name = ] 'schedule_name' } 
    [ , [ @new_name = ] new_name ] 
    [ , [ @enabled = ] enabled ] 
    [ , [ @freq_type = ] freq_type ] 
    [ , [ @freq_interval = ] freq_interval ] 
    [ , [ @freq_subday_type = ] freq_subday_type ] 
    [ , [ @freq_subday_interval = ] freq_subday_interval ] 
    [ , [ @freq_relative_interval = ] freq_relative_interval ] 
    [ , [ @freq_recurrence_factor = ] freq_recurrence_factor ] 
    [ , [ @active_start_date = ] active_start_date ] 
    [ , [ @active_end_date = ] active_end_date ] 
    [ , [ @active_start_time = ] active_start_time ] 
    [ , [ @active_end_time = ] active_end_time ] 
    [ , [ @owner_login_name = ] 'owner_login_name' ] 
    [ , [ @automatic_post =] automatic_post ] 
+0

我看着这个sp,但它没有下一个运行日期。如果我使用它,就像每次创建一个新的日程安排,即更改活动的开始日期? – evoandy

+0

更新'sysjobschedules'中的'next_run_date'不会解决问题。 “sysjobschedules”表每20分钟刷新一次。它取决于各种其他字段 - “freq_interval,freq_subday_type,freq_subday_interval,freq_relative_interval,freq_recurrence_factor,active_start_date,active_start_time”。所以,你必须引用这些字段来改变下一次运行日期。 – AgentSQL

+0

访问[this](http://sqlmag.com/t-sql/plugging-gaps-sql-server-job-tracking)网站了解更多信息。 – AgentSQL