分类

链接

2012 年 2 月
 12345
6789101112
13141516171819
20212223242526
272829  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > SQL Server > 正文
共享办公室出租
定时调用存储过程的作业
SQL Server 暂无评论 阅读(2,542)
  1. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_JobSet]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2.     drop procedure [dbo].[p_JobSet]
  3. GO
  4.  
  5. /*--指定时间调用存储过程
  6.  
  7.     创建一个在指定时间,调用指定存储过程的作业
  8.     作业执行完成后会自动删除 
  9.  
  10. /*--调用示例
  11.  
  12.     declare @dt datetime
  13.     set @dt=dateadd(minute,1,getdate())    --当前时间1分钟后执行
  14.     exec p_JobSet 'master.dbo.xp_cmdshell ''dir c:\*.*''',@dt
  15. --*/
  16. create proc p_JobSet
  17. @prorcname sysname,    --要调用定时调用的存储过程名,如果不在当前库中,则用:库名.所有者名.存储过程名
  18. @job_date datetime    --存储过程的执行时间(包括时间信息)
  19. with encryption
  20. as
  21. declare @dbname sysname,@jobname sysname
  22.     ,@date int,@time int
  23.  
  24. select @jobname='临时作业_'+cast(newid() as varchar(36))
  25.     ,@date=convert(varchar,@job_date,112)
  26.     ,@time=replace(convert(varchar,@job_date,108),':','')
  27.  
  28. if exists(select 1 from msdb..sysjobs where name=@jobname)
  29.     exec msdb..sp_delete_job @job_name=@jobname 
  30.  
  31. --创建作业
  32. exec msdb..sp_add_job @job_name=@jobname,@delete_level=1
  33.  
  34. --创建作业步骤
  35. declare @sql varchar(800)
  36. select @sql='exec '+@prorcname
  37.     ,@dbname=db_name()
  38.  
  39. exec msdb..sp_add_jobstep @job_name=@jobname,
  40.     @step_name = '处理步骤',
  41.     @subsystem = 'TSQL',
  42.     @database_name=@dbname,
  43.     @command = @sql,
  44.     @retry_attempts = 5,         --重试次数
  45.     @retry_interval = 5          --重试间隔
  46.  
  47. --创建调度
  48. EXEC msdb..sp_add_jobschedule @job_name = @jobname, 
  49.     @name = '时间安排',
  50.     @enabled = 1, 
  51.     @freq_type = 1, 
  52.     @active_start_date = @date,
  53.     @active_start_time = @time
  54.  
  55. -- 添加目标服务器
  56. EXEC msdb.dbo.sp_add_jobserver 
  57.     @job_name = @jobname ,
  58.     @server_name = N'(local)' 
  59. go

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:定时调用存储过程的作业 | Bruce's Blog

发表评论

留言无头像?