动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
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!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > 数据库技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 数据库技巧 ]的信息

本月文章推荐
.sql2000挂起无法安装的问题.
.对外连接的表加上条件后将会使外.
.详细介绍分级汇总实现的3种方法的.
.sql server2000还原模型的说明.
.在数据库里取前10条数据.
.在SQL Server 2005中实现表的行列.
.数据库查询结果的动态排序(2).
.SQL中HAVING从句的用法.
.SQL优化34条.
.数据库快照,自定义函数与计算列的.
.Sql Server下数据库链接的使用方.
.正确认识对象数据库与关系数据库.
.使用SQLSERVER的扩展存储过程实现.
.SQL Server 2000的数据转换服务(.
.用共享游标提升 SQL 性能.
.安装SQL Server 2005时出现计数器.
.使用Transact-SQL计算SQL Server.
.SQL Server 2000 在 win2003上安.
.通过sp_sysmon对Sybase进行性能诊.
.Sql Server数据库定时自动备份.

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年月日计算方法 人气:3934
下一篇:两个sql server 2000的通用分页存储过程 人气:4445
点击此处浏览全部sql server的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-15 bBlog v0.7.6
2008-5-15 team论坛 v2.0.3 SQL
2008-5-15 team论坛 v2.0.3 ACC
2008-5-15 速博交友网站管理系统 2007 SQL专
2008-5-15 目录直读式图片展示系统 v2.0
2008-5-15 迅思科量具计量管理软件 MTMS v1
2008-5-15 图看网IP地址查询系统 v1.0
2008-5-15 幸福公寓同居交友 简洁版
2008-5-15 九天备案中系统
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報