zoukankan      html  css  js  c++  java
  • 创建作业的通用存储过程

     

     

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_JobSet]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_JobSet]
    GO

    /*--定时调用存储过程

     创建一个在指定时间,调用指定存储过程的作业
     作业执行完成后会自动删除

    --邹建 2004.07(引用请保留此信息)--*/

    /*--调用示例

     exec p_JobSet 'master.dbo.xp_cmdshell','2004-1-1 10:30'
    --*/
    create proc p_JobSet
    @prorcname sysname, --要调用定时调用的存储过程名,如果不在当前库中,则用:库名.所有者名.存储过程名
    @job_date datetime --存储过程的执行时间(包括时间信息)
    as
    declare @dbname sysname,@jobname sysname
     ,@date int,@time int

    select @jobname='定时发送作业_'+cast(newid() as varchar(36))
     ,@date=convert(varchar,@job_date,112)
     ,@time=replace(convert(varchar,@job_date,108),':','')

    if exists(select 1 from msdb..sysjobs where name=@jobname)
     exec msdb..sp_delete_job @job_name=@jobname

    --创建作业
    exec msdb..sp_add_job @job_name=@jobname,@delete_level=1

    --创建作业步骤
    declare @sql varchar(800)
    select @sql='exec '+@prorcname
     ,@dbname=db_name()

    exec msdb..sp_add_jobstep @job_name=@jobname,
     @step_name = '发送处理步骤',
     @subsystem = 'TSQL',
     @database_name=@dbname,
     @command = @sql,
     @retry_attempts = 5,   --重试次数
     @retry_interval = 5    --重试间隔

    --创建调度
    EXEC msdb..sp_add_jobschedule @job_name = @jobname, 
     @name = '时间安排',
     @enabled = 1, 
     @freq_type = 1, 
     @active_start_date = @date,
     @active_start_time = @time

    -- 添加目标服务器
    EXEC msdb.dbo.sp_add_jobserver 
     @job_name = @jobname ,
     @server_name = N'(local)' 
    go

  • 相关阅读:
    Django项目上线的准备工作
    Centos安装MySQL5.6并重置密码
    Centos7.4下安装Python3
    Django单表查询及其方法
    thinkphp 视图模型使用分析
    thinkphp 统计某个字段不重复数 总数
    表结构相同的表,且在同一数据库 数据复制
    crontab 定时任务 每过多少分钟执行
    js event事件
    shell 验证ip
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2577045.html
Copyright © 2011-2022 走看看