网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.利用"SQL"语句自动生成序号的两种.
.经常用到的交叉表问题,一般用动态.
.快速掌握SQL中几个值得注意的特殊.
.从算法入手讲解SQL Server的典型.
.SQL SERVER的行式触发器.
.讲解SQL Server线程和纤程的管理.
.SQL SERVER应用问题解答13例(一.
.教你使用SQL Server数据库进行网.
.带你深入了解建立数据仓库的八条.
.深入讲解如何填平数据仓库与实时.
.探讨基于不绑定变量与绑定变量的.
.教你在SQL Server数据库中设计表.
.sql server转换时间为字符串.
.JS中通过字符串构造指定的日期对.
.在视图中使用ORDER BY子句.
.SQL Server静态页面导出技术2.
.精彩的近乎完美的分页存储过程.
.无法在SQL 2005系统数据库中执行.
.SQL分页语句.
.个人经验总结──生产环境下的备.

sqlserver通过脚本创建定时任务

发表日期:2007-3-17


通过脚本创建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),                           --作业名称  
  @sql   varchar(8000),                                 --要执行的命令  
  @serverName   sysname='',                         --job   server名  
  @dbname   sysname='',                                 --默认为当前的数据库名  
  @freqtype   varchar(6)='day',                 --时间周期,month   月,week   周,day   日  
  @fsinterval   int=1,                                   --相对于每日的重复次数  
  @time   int=170000                                       --开始执行时间,对于重复执行的作业,将从0点到23:59分  
  as  
  if   isnull(@dbname,'')=''   set   @dbname=db_name()  
   
  --创建作业  
  exec   msdb..sp_add_job   @job_name=@jobname  
   
  --创建作业步骤  
  exec   msdb..sp_add_jobstep   @job_name=@jobname,  
                  @step_name   =   '数据处理',  
                  @subsystem   =   'TSQL',  
                  @database_name=@dbname,  
                  @command   =   @sql,  
                  @retry_attempts   =   5,   --重试次数  
                  @retry_interval   =   5     --重试间隔  
   
  --创建调度  
  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   =   '时间安排',  
                  @freq_type=@ftype   ,                                                 --每天,8   每周,16   每月  
                  @freq_interval=1,                                                     --重复执行次数  
                  @freq_subday_type=@fstype,                                   --是否重复执行  
                  @freq_subday_interval=@fsinterval,                   --重复周期  
                  @freq_recurrence_factor=@ffactor,  
                  @active_start_time=@time                                       --下午17:00:00分执行  
   
  if   @servername=''  
  set   @servername=@@servername  
  EXEC   msdb..sp_add_jobserver   @job_name   =   @jobname,    
            @server_name   =   @servername  
   
  go    
   
  --调用  
  --每天执行的作业  
  exec   p_createjob   @jobname='dd'  
                                    ,@sql='insert   B   select   convert(char(10),getdate(),120),1+(select   max([text])   from   B)'  
                                    ,@servername='job服务器名'  
                                    ,@dbname='数据库名'  
                                    ,@freqtype='day'  
                                    ,@time='000000' 


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

以下是另一个版本,出自博客园
http://www.cnblogs.com/datasky/archive/2006/12/28/606354.html

--每月执行的作业
exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'
--每周执行的作业
exec p_createjob @jobname='ww',@sql='select * from syscolumns',@freqtype='week'
--每日执行的作业
exec p_createjob @jobname='a',@sql='select * from syscolumns'
--每日执行的作业,每天隔4小时重复的作业
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),--作业名称
@sql varchar(8000),--要执行的命令
@dbname sysname='',--默认为当前的数据库名
@freqtype varchar(6)='day',--时间周期,month 月,week 周,day 日
@fsinterval int=1,--相对于每日的重复次数
@time int=170000--开始执行时间,对于重复执行的作业,将从0点到23:59分
as
if isnull(@dbname,'')='' set @dbname=db_name()
--创建作业
exec msdb..sp_add_job @job_name=@jobname
--创建作业步骤
exec msdb..sp_add_jobstep @job_name=@jobname,
@step_name = '数据处理',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重试次数
@retry_interval = 5  --重试间隔
--创建调度
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 = '时间安排',
@freq_type=@ftype , --每天,8 每周,16 每月
@freq_interval=1,--重复执行次数
@freq_subday_type=@fstype,--是否重复执行
@freq_subday_interval=@fsinterval, --重复周期
@freq_recurrence_factor=@ffactor,
@active_start_time=@time  --下午17:00:00分执行
-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_name = @jobname ,
@server_name = N'(local)'
go

上一篇:sql年月日计算方法 人气:4800
下一篇:两个sql server 2000的通用分页存储过程 人气:5531
浏览全部sql server的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐