寂寞部屋
- 关注互联网,关注生活
关注互联网,关注生活
2019年五月
« 4月    
 12345
6789101112
13141516171819
20212223242526
2728293031  
  • 日志总数:553 篇
  • 浏览总量:2,435,455 次
  • 运行天数:619 天
  • 建站时间:2017-9-14
  • 最后更新:2019-4-2

使用TSQL创建作业

 

SQL代码
  1. if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[p_createjob]’and OBJECTPROPERTY(id, N‘IsProcedure’) = 1)   
  2. drop procedure [dbo].[p_createjob]   
  3. GO   
  4.   
  5. create proc p_createjob   
  6. @jobname varchar(100),             –作业名称   
  7. @sql varchar(8000),                –要执行的命令   
  8. @serverName sysname=,            –job server名   
  9. @dbname sysname=,                –默认为当前的数据库名   
  10. @freqtype varchar(6)=‘day’,        –时间周期,month 月,week 周,day 日   
  11. @fsinterval int=1,                 –相对于每日的重复次数   
  12. @time int=170000                   –开始执行时间,对于重复执行的作业,将从0点到23:59分   
  13. as  
  14. if isnull(@dbname,)= set @dbname=db_name()   
  15.   
  16. –创建作业   
  17. exec msdb..sp_add_job @job_name=@jobname   
  18.   
  19. –创建作业步骤   
  20. exec msdb..sp_add_jobstep @job_name=@jobname,   
  21.         @step_name = ‘数据处理’,   
  22.         @subsystem = ‘TSQL’,   
  23.         @database_name=@dbname,   
  24.         @command = @sql,   
  25.         @retry_attempts = 5, –重试次数   
  26.         @retry_interval = 5  –重试间隔   
  27.   
  28. –创建调度   
  29. declare @ftype int,@fstype int,@ffactor int  
  30. select @ftype=case @freqtype when ‘day’ then 4   
  31.                                         when ‘week’ then 8   
  32.                                         when ‘month’ then 16 end  
  33.         ,@fstype=case @fsinterval when 1 then 0 else 8 end  
  34. if @fsinterval<>1 set @time=0   
  35. set @ffactor=case @freqtype when ‘day’ then 0 else 1 end  
  36.   
  37. EXEC msdb..sp_add_jobschedule @job_name=@jobname,    
  38.         @name = ‘时间安排’,   
  39.         @freq_type=@ftype ,                        –每天,8 每周,16 每月   
  40.         @freq_interval=1,                          –重复执行次数   
  41.         @freq_subday_type=@fstype,                 –是否重复执行   
  42.         @freq_subday_interval=@fsinterval,         –重复周期   
  43.         @freq_recurrence_factor=@ffactor,   
  44.         @active_start_time=@time                   –下午17:00:00分执行   
  45.   
  46. if @servername=  
  47. set @servername=@@servername   
  48. EXEC msdb..sp_add_jobserver @job_name = @jobname,    
  49.      @server_name = @servername   
  50.   
  51. go   
  52.   
  53. –调用   
  54. –每月执行的作业   
  55. exec p_createjob @jobname=‘mm’  
  56.                  ,@sql=‘insert A select ‘‘AAA’  
  57.                  ,@servername=‘FUDAN-OXI9Y1PYT’  
  58.                  ,@dbname=‘test’  
  59.                  ,@freqtype=‘month’  
  60.                  ,@time=‘000000’  

 

来源:http://blog.csdn.net/vivianfdlpw/archive/2005/09/27/490246.aspx

本站原创文章,请勿复制转载
版权声明:除特别注明外,本站所有文章均为原创,未经许可请勿复制、转载
2007-11-10
2,384 views
标签: , ,
暂无评论

发表评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。