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


     

  • 相关阅读:
    js 数据类型的转换
    js数组学习方法汇总
    跳转页面的方法总结
    今天用js做拉一个时钟
    今天用js做拉一个时钟
    js中字符的比较
    1005 继续(3n+1)猜想 (25分)
    1002 写出这个数
    日期差值
    1040 有几个PAT (25分)
  • 原文地址:https://www.cnblogs.com/cuiwenke/p/1909151.html
Copyright © 2011-2022 走看看