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
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
本文转自高海东博客园博客,原文链接http://www.cnblogs.com/ghd258/archive/2005/10/24/260698.html,如需转载请自行联系原作者