• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用T_SQL脚本创建SQLServer2000后台计划作业任务

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

作者:蒋勇 http://idoorsoft.51.net

  在数据库的应用系统中,充分的利用数据库的后台服务端的功能可以可以简化客户端前台的工作,更可以降低网络的负荷,同时使整个系统设计更合理,便于维护移植和升级,后台计划任务作业在很多数据库应用中经常会用到,当然是配合存储过程使用。
  在SQL Server2000中,可以手动一步一步的在企业管理器中建立后台计划任务作业,但这样既麻烦也不便于发布,因此本文给出使用T-SQL脚本创建作业的方法。
  需要下面三个SQL Server2000 msdb系统库中的存储过程来完成作业的建立,在此之前请先开启数据库实例的SQLServerAgent服务,SQL Server安装后默认是没有启动该服务的。
  顺便说一句,SQL Server在2000版本中才有了明显的“实例”的概念,在7.0版中没有明确的实例,因此在SQL Server2000默认安装时创建了一个默认实例,这是为了和SQl Server 7.0兼容,如果你是默认方式创建的实例,则实例名为空。啥子?你不晓得啥子是“实例”?个人去找点资料看看,oracel、sybase都有实例和表空间,所以我叫SQL Server2000之前的SQL Server为桌面数据库。
  进入正题,步骤是“作业”-〉“作业调度”-〉“作业步骤”,具体如下:

1、使用sp_add_job 添加由 SQLServerAgent 服务执行的新作业。
2、使用sp_add_jobschedule创建作业调度。
3、使用sp_add_jobstep将一个步骤(操作)添加到作业中


  下面以在汽车客运站票务系统中的脚本为例给出实际例子,在看例子之前,请先看一下上面三个系统存储过程的帮助。在例子中使用了一个自定义的存储过程“tksp_bakdata”,它的功能是处理当日之前售票数据(只需知道是一个自定义存储过程就行了)。


例子1:每日0点30分处理售票数据
www.knowsky.com

use msdb
EXEC sp_add_job @job_name = @#tk_bakdata@#,
@enabled = 1,
@description = @#每日00:30处理售票数据@#,
@start_step_id = 1,
@owner_login_name = @#tkuser@#
exec sp_add_jobserver @job_name = @#tk_bakdata@#
go

EXEC sp_add_jobschedule @job_name = @#tk_bakdata@#,
@name = @#Bakdata003000@#,
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 003000
go

EXEC sp_add_jobstep @job_name = @#tk_bakdata@#,
@step_name = @#bakdata@#,
@subsystem = @#TSQL@#,
@command = @#EXEC tksp_bakdata @#,
@database_name=@#ticket@#
go

例子2:每日SQLServer启动时处理售票数据,这样在每天需要关机的服务器中也能保证处理售票数据。

use msdb
EXEC sp_add_job @job_name = @#tk_bakdata2@#,
@enabled = 1,
@description = @#每日SQLServer启动时处理售票数据@#,
@start_step_id = 1,
@owner_login_name = @#tkuser@#
exec sp_add_jobserver @job_name = @#tk_bakdata2@#
go

EXEC sp_add_jobschedule @job_name = @#tk_bakdata2@#,
@name = @#BakdataStart@#,
@freq_type = 64
go

EXEC sp_add_jobstep @job_name = @#tk_bakdata2@#,
@step_name = @#BakdataStart@#,
@subsystem = @#TSQL@#,
@command = @#EXEC tksp_bakdata @#,
@database_name=@#ticket@#
go


----蒋勇    2004.8.25
http://idoorsoft.51.net

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网