创建作业的通用存储过程

原创 2004年07月29日 11:46:00

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

sql数据库作业,定期执行存储过程

IF EXISTS (        SELECT *        FROM   dbo.sysobjects        WHERE  id = OBJECT_ID(N'[dbo].[Jo...
  • AllCanResolved
  • AllCanResolved
  • 2013年04月15日 09:08
  • 1895

MySql中创建存储过程

MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014年05月04日 10:31
  • 25426

Oracle 存储过程创建和执行入门实例

以下emp表是orcl数据库实例自带的表。 执行存储过程前,必须先执行  SET serveroutput ON;  show error; 可以显示具体的执行错误信息。 1.  不带参数 A. ...
  • qq804702802
  • qq804702802
  • 2015年07月04日 11:45
  • 2212

navicat 创建存储过程

navicat创建存储过程图解
  • winy_lm
  • winy_lm
  • 2015年11月07日 00:03
  • 11434

navicat 创建存储过程

转自:http://blog.csdn.net/winy_lm/article/details/49690633 再简单的东西长时间不用了就会出错,特此即时的记录下来,以便以后参考!...
  • u010142437
  • u010142437
  • 2017年03月01日 13:26
  • 441

SQL server 存储过程 创建与使用

存储过程(Procedure) 存储过程是SQL语句和控制语句的预编译集合,保存在数据库中,可以调用执行,并且允许用户声明变量.逻辑控制语句以及其他强大的编程功能 ----------------...
  • miniduhua
  • miniduhua
  • 2016年08月03日 11:47
  • 9027

Sqlserver定时执行存储过程

--方法1:作业里定时执行存储过程定时作业的制定    企业管理器  --管理  --SQL Server代理  --右键作业  --新建作业  --"常规"...
  • wangygang
  • wangygang
  • 2014年06月26日 10:40
  • 4895

oracle PLSQL创建和调用存储过程

我是在PLSQL的command window里使用的命令 建表  drop table students;  create table students(ID int,userName varc...
  • wojiuguowei
  • wojiuguowei
  • 2014年03月12日 15:24
  • 3277

SQLserver 在存储过程中创建函数,创建视图

alter PROCEDURE usp_sumgoods(@supplierid VARCHAR(50)) as BEGIN if exists (select * from dbo.sysobjec...
  • u012725119
  • u012725119
  • 2013年12月21日 23:57
  • 1396

关于用存储过程中动态创建视图的一点心得。

工作中遇到的问题,要不然也不会想到要去如何实现了。本来已经创建好了视图,后台的代码也写完了,突然得到指示,其中一张比较重要的表的表名会因为在不同的PC上安装数据库而发生变化(在另一张表中可以根据规则查...
  • vajoy
  • vajoy
  • 2013年01月07日 16:53
  • 4451
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建作业的通用存储过程
举报原因:
原因补充:

(最多只允许输入30个字)