国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

sqlserver通過腳本創(chuàng)建定時(shí)任務(wù)

2024-07-21 02:32:07
字體:
供稿:網(wǎng)友

通過腳本創(chuàng)建JOB:  
if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_createjob]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
  drop   procedure   [dbo].[p_createjob]  
  GO  
   
  create   proc   p_createjob  
  @jobname   varchar(100),                           --作業(yè)名稱  
  @sql   varchar(8000),                                 --要執(zhí)行的命令  
  @serverName   sysname='',                         --job   server名  
  @dbname   sysname='',                                 --默認(rèn)為當(dāng)前的數(shù)據(jù)庫名  
  @freqtype   varchar(6)='day',                 --時(shí)間周期,month   月,week   周,day   日  
  @fsinterval   int=1,                                   --相對(duì)于每日的重復(fù)次數(shù)  
  @time   int=170000                                       --開始執(zhí)行時(shí)間,對(duì)于重復(fù)執(zhí)行的作業(yè),將從0點(diǎn)到23:59分  
  as  
  if   isnull(@dbname,'')=''   set   @dbname=db_name()  
   
  --創(chuàng)建作業(yè)  
  exec   msdb..sp_add_job   @job_name=@jobname  
   
  --創(chuàng)建作業(yè)步驟  
  exec   msdb..sp_add_jobstep   @job_name=@jobname,  
                  @step_name   =   '數(shù)據(jù)處理',  
                  @subsystem   =   'TSQL',  
                  @database_name=@dbname,  
                  @command   =   @sql,  
                  @retry_attempts   =   5,   --重試次數(shù)  
                  @retry_interval   =   5     --重試間隔  
   
  --創(chuàng)建調(diào)度  
  declare   @ftype   int,@fstype   int,@ffactor   int  
  select   @ftype=case   @freqtype   when   'day'   then   4  
                                                                                  when   'week'   then   8  
                                                                                  when   'month'   then   16   end  
                  ,@fstype=case   @fsinterval   when   1   then   0   else   8   end  
  if   @fsinterval<>1   set   @time=0  
  set   @ffactor=case   @freqtype   when   'day'   then   0   else   1   end  
   
  EXEC   msdb..sp_add_jobschedule   @job_name=@jobname,    
                  @name   =   '時(shí)間安排',  
                  @freq_type=@ftype   ,                                                 --每天,8   每周,16   每月  
                  @freq_interval=1,                                                     --重復(fù)執(zhí)行次數(shù)  
                  @freq_subday_type=@fstype,                                   --是否重復(fù)執(zhí)行  
                  @freq_subday_interval=@fsinterval,                   --重復(fù)周期  
                  @freq_recurrence_factor=@ffactor,  
                  @active_start_time=@time                                       --下午17:00:00分執(zhí)行  
   
  if   @servername=''  
  set   @servername=@@servername  
  EXEC   msdb..sp_add_jobserver   @job_name   =   @jobname,    
            @server_name   =   @servername  
   
  go    
   
  --調(diào)用  
  --每天執(zhí)行的作業(yè)  
  exec   p_createjob   @jobname='dd'  
                                    ,@sql='insert   B   select   convert(char(10),getdate(),120),1+(select   max([text])   from   B)'  
                                    ,@servername='job服務(wù)器名'  
                                    ,@dbname='數(shù)據(jù)庫名'  
                                    ,@freqtype='day'  
                                    ,@time='000000' 


===============================================================

以下是另一個(gè)版本,出自博客園
http://www.cnblogs.com/datasky/archive/2006/12/28/606354.html

--每月執(zhí)行的作業(yè)
exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'
--每周執(zhí)行的作業(yè)
exec p_createjob @jobname='ww',@sql='select * from syscolumns',@freqtype='week'
--每日?qǐng)?zhí)行的作業(yè)
exec p_createjob @jobname='a',@sql='select * from syscolumns'
--每日?qǐng)?zhí)行的作業(yè),每天隔4小時(shí)重復(fù)的作業(yè)
exec p_createjob @jobname='b',@sql='select * from syscolumns',@fsinterval=4
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_createjob]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_createjob]
GO
create proc p_createjob
@jobname varchar(100),--作業(yè)名稱
@sql varchar(8000),--要執(zhí)行的命令
@dbname sysname='',--默認(rèn)為當(dāng)前的數(shù)據(jù)庫名
@freqtype varchar(6)='day',--時(shí)間周期,month 月,week 周,day 日
@fsinterval int=1,--相對(duì)于每日的重復(fù)次數(shù)
@time int=170000--開始執(zhí)行時(shí)間,對(duì)于重復(fù)執(zhí)行的作業(yè),將從0點(diǎn)到23:59分
as
if isnull(@dbname,'')='' set @dbname=db_name()
--創(chuàng)建作業(yè)
exec msdb..sp_add_job @job_name=@jobname
--創(chuàng)建作業(yè)步驟
exec msdb..sp_add_jobstep @job_name=@jobname,
@step_name = '數(shù)據(jù)處理',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重試次數(shù)
@retry_interval = 5  --重試間隔
--創(chuàng)建調(diào)度
declare @ftype int,@fstype int,@ffactor int
select @ftype=case @freqtype when 'day' then 4
when 'week' then 8
when 'month' then 16 end
,@fstype=case @fsinterval when 1 then 0 else 8 end
if @fsinterval<>1 set @time=0
set @ffactor=case @freqtype when 'day' then 0 else 1 end
EXEC msdb..sp_add_jobschedule @job_name=@jobname,
@name = '時(shí)間安排',
@freq_type=@ftype , --每天,8 每周,16 每月
@freq_interval=1,--重復(fù)執(zhí)行次數(shù)
@freq_subday_type=@fstype,--是否重復(fù)執(zhí)行
@freq_subday_interval=@fsinterval, --重復(fù)周期
@freq_recurrence_factor=@ffactor,
@active_start_time=@time  --下午17:00:00分執(zhí)行
-- 添加目標(biāo)服務(wù)器
EXEC msdb.dbo.sp_add_jobserver
@job_name = @jobname ,
@server_name = N'(local)'
go


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 盈江县| 沿河| 常德市| 赫章县| 明星| 裕民县| 瑞昌市| 怀宁县| 安吉县| 新安县| 长白| 莱阳市| 芷江| 霸州市| 上思县| 沧州市| 平邑县| 盐亭县| 木里| 巴楚县| 英吉沙县| 朝阳县| 寻乌县| 虞城县| 芦溪县| 玉龙| 修武县| 石台县| 焉耆| 高陵县| 罗平县| 文登市| 四子王旗| 滕州市| 壤塘县| 阿图什市| 华池县| 松溪县| 澄迈县| 龙胜| 江川县|