sp_add_jobschedule
创建作业调度。语法
sp_add_jobschedule [ @job_id = ] job_id, | [ @job_name = ] 'job_name',
    [ @name = ] '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 ]示例
此示例假设已经创建用来备份数据库的 NightlyBackup 作业。它将作业添加到名为 ScheduledBackup 的调度中,并且在每天上午 1:00 执行。USE msdb
EXEC sp_add_jobschedule @job_name = 'NightlyBackup', 
   @name = 'ScheduledBackup',
   @freq_type = 4, -- daily
   @freq_interval = 1,
   @active_start_time = 10000

解决方案 »

  1.   

    USE msdb
    GO-- 完整的示例
    DECLARE @plan_id uniqueidentifier-- 定义维护计划
    EXECUTE   msdb.dbo.sp_add_maintenance_plan 
    N'Myplan',
    @plan_id OUTPUTEXECUTE  msdb.dbo.sp_add_maintenance_plan_db 
    @plan_id,
    N'Northwind'-- 定义创建作业
    DECLARE @jobid uniqueidentifier, @jobname sysname
    SET @jobname = N'作业名称'IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name=@jobname)
    EXEC msdb.dbo.sp_delete_job @job_name=@jobnameDECLARE @re int
    EXEC @re = msdb.dbo.sp_add_job
    @job_name = @jobname,
    @job_id = @jobid OUTPUT
    select @re -- 将维护计划与作业绑定
    EXEC msdb.dbo.sp_add_maintenance_plan_job
    @plan_id,
    @jobid--创建调度
    EXEC msdb..sp_add_jobschedule
    @job_id = @jobid,
    @name = N'调度名称',
    @freq_type=4,                --每天
    @freq_interval=1,            --指定每多少天发生一次,这里是1天.
    @freq_subday_type=0x8,       --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
    @freq_subday_interval=1,     --重复周期数,这里每小时执行一次
    @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
    @active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
    @active_start_time = 00000,  --作业执行的开始时间,格式为HHMMSS
    @active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS--添加目标服务器
    DECLARE @servername sysname
    SET @servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))
    EXEC msdb.dbo.sp_add_jobserver 
    @job_id = @jobid,
    @server_name = @servername --使用当前SQL实例