当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 使用T_SQL脚本创建SQLServer2000后台计划作业任务

MSSQL
将表数据生成SQL脚本的存储过程和工具
初学者必读:经典的数据库记录分页代码
使用SQL Server 2008管理非结构化数据
利用索引提高SQL Server数据处理的效率
SQL Server数据库内存会不断增加的问题分析
面向对象设计过程中必须遵守的相关准则
SQL Server 2005如何设置多字段做关键字
SQL Server 2005数据库中表的递归查询
SQL Server中使用DTS设计器进行数据转移
在查询分析器理启动或停止SQL Agent服务
教你快速掌握SQL语言中游标的使用技巧
将SQL Server中所有表的列信息显示出来
使用SQL语句快速获取SQL Server数据字典
Sql Server 2005中的架构用户登录和角色
如何保存数据库连接参数代码及步骤详解
如何使用SQL Server数据库嵌套子查询
SQL Server从安装到建库为新手寻找捷径
课程讲解 如何使用SQL Server校勘功能
数据库理论:学习基于SQL数据库的算法
教你使用SQL Server数据库进行网络链接

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 171 ::
收藏到网摘: n/a

 

作者:蒋勇 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