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

  • 相关阅读:
    hdu 5146 Sequence
    hdu 1232 畅通工程
    hdu 1213 How Many Tables
    hdu 2822 Dogs
    hdu 1242 Rescue
    hdu 5101 Select
    hdu 1873 看病要排队
    hdu 5112 A Curious Matt
    hdu 5154 Harry and Magical Computer
    hdu 1548 A strange lift
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2577045.html
Copyright © 2011-2022 走看看