在SQL下建作业相信大家都会;一般的作业里面都有个计划时间,比如我可以设置为每天晚上0:00:00;但是我先在如果要让这个执行时间可变,这个执行时间根据某张表A的字段PlanDate执行,该如何实现呢?

解决方案 »

  1.   

    查看精华帖子 动态SQL基本语法。
      

  2.   

    --自己写逻辑处理。
    --#1.首先你要知道每个JOB的JOB_ID(msdb.dbo.sysjobs,JOB的信息都在msdb数据库下.如:计划信息sysjobschedules,sysschedules)
    --#2.根据你的参数,自定义逻辑,调用msdb.dbo.sp_update_schedule存储过程更新schedules。例如:EXEC msdb.dbo.sp_update_schedule @schedule_id=12, @freq_subday_interval=11
    http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(SP_UPDATE_SCHEDULE_TSQL);k(SQL11.SWB.TSQLRESULTS.F1);k(SQL11.SWB.TSQLQUERY.F1);k(MISCELLANEOUSFILESPROJECT);k(DevLang-TSQL)&rd=true
      

  3.   

    这个实时运行就比较麻烦。
    你建立计划任务,任务调用存储过程,在存储过程中判断当前PlanDate是不是但前日期,如果不是就return,否则继续运行。也就是说,任务会每天运行,但是具体操作会根据PlanDate判断。
      

  4.   

    在sql2008下面可以了,但是在sql2000下面怎么做呢?