IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]---------------创建定时作业的脚本-----------------

    fredrickhu发表于 2011-10-22 12:16:59
    love 0

    通过脚本创建JOB:

    if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_createjob]) and OBJECTPROPERTY(id, NIsProcedure) = 1)

    drop procedure [dbo].[p_createjob] GO

    create proc p_createjob

    @jobname varchar(100), --作业名称

    @sql varchar(8000), --要执行的命令

    @serverName sysname=, --job server名

    @dbname sysname=, --默认为当前的数据库名

    @freqtype varchar(6)=day, --时间周期,month 月,week 周,day 日

    @fsinterval int=1, --相对于每日的重复次数

    @time int=170000 --开始执行时间,对于重复执行的作业,将从0点到23:59分

    as

    if isnull(@dbname,'')= ''

    set @dbname=db_name() --创建作业

    exec msdb..sp_add_job @job_name=@jobname --创建作业步骤

    exec msdb..sp_add_jobstep @job_name=@jobname,

    @step_name = 数据处理,

    @subsystem = TSQL,

    @database_name=@dbname,

    @command = @sql,

    @retry_attempts = 5, --重试次数

    @retry_interval = 5 --重试间隔 --创建调度

    declare @ftype int,@fstype int,@ffactor int

    select @ftype=case @freqtype when day then 4 when week then 8 when month then 16 end ,

    @fstype=case @fsinterval when 1 then 0 else 8 end

    if @fsinterval1

    set @time=0 set @ffactor=case @freqtype when day then 0 else 1 end

    EXEC msdb..sp_add_jobschedule

    @job_name=@jobname, @name = 时间安排,

    @freq_type=@ftype , --每天,8 每周,16 每月

    @freq_interval=1, --重复执行次数

    @freq_subday_type=@fstype, --是否重复执行

    @freq_subday_interval=@fsinterval, --重复周期

    @freq_recurrence_factor=@ffactor,

    @active_start_time=@time --下午17:00:00分执行

    if @servername= '.'

    set @servername=@@servername

    EXEC msdb..sp_add_jobserver

    @job_name = @jobname,

    @server_name = @servername

    go

    --调用 --每天执行的作业

    exec p_createjob @jobname=dd ,

    @sql=insert B select convert(char(10),getdate(),120),1+(select max([text]) from B) ,

    @servername=job服务器名 ,

    @dbname=数据库名 ,

    @freqtype=day ,@time=000000



沪ICP备19023445号-2号
友情链接