作者:蔣勇 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',
http://www.bkjia.com/PHPjc/631226.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631226.htmlTechArticle作者:蔣勇 http://idoorsoft.51.net 在資料庫的應用系統中,充分的利用資料庫的後台服務端的功能可以可以簡化用戶端前台的工作,更可以降低網...