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

  • 相关阅读:
    产品经理的未来在哪里
    如何打造一款成功的产品
    彻底解决Android 应用方法数不能超过65K的问题
    MVC,MVP 和 MVVM 的图示
    oracle最高账号sys的密码认证模式
    Android开发者必须深入学习的10个应用开源项目
    Android程序完全退出的三种方法
    Android-监听网络状态
    Android开发图片分辨率问题解决方案
    Android清除本地数据缓存代码
  • 原文地址:https://www.cnblogs.com/ghd258/p/260698.html
Copyright © 2011-2022 走看看