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

  • 相关阅读:
    C# 与Sql server 获取数据和执行命令
    关于*.ashx 处理程序调试时 未能创建类型 错误
    winform 利用Http向服务器上传与下载文件
    CSS 使用absolute 是<div>居中
    C# int[,] 和 int[][]
    《Head First JavaScript》 学习笔记
    【单片机】关于头文件
    【单片机】【710】定时器
    【C#】委托
    【C#】关于接口的理解
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2577045.html
Copyright © 2011-2022 走看看