SQl 作业方面(转)
企業(yè)管理器?
--管理?
--SQL Server代理?
--右鍵作業(yè)?
--新建作業(yè)?
--"常規(guī)"項中輸入作業(yè)名稱?
--"步驟"項?
--新建?
--"步驟名"中輸入步驟名?
--"類型"中選擇"Transact-SQL 腳本(TSQL)"?
--"數(shù)據(jù)庫"選擇執(zhí)行命令的數(shù)據(jù)庫?
--"命令"中輸入要執(zhí)行的語句:?
update base set flag=0 where datediff(dd,date,getdate())=0
--確定?
--"調(diào)度"項?
--新建調(diào)度?
--"名稱"中輸入調(diào)度名稱?
--"調(diào)度類型"中選擇你的作業(yè)執(zhí)行安排?
--如果選擇"反復(fù)出現(xiàn)"?
--點"更改"來設(shè)置你的時間安排為一天一次
然后將SQL Agent服務(wù)啟動,并設(shè)置為自動啟動,否則你的作業(yè)不會被執(zhí)行
設(shè)置方法:?
我的電腦--控制面板--管理工具--服務(wù)--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.
?
在數(shù)據(jù)庫的應(yīng)用系統(tǒng)中,充分的利用數(shù)據(jù)庫的后臺服務(wù)端的功能可以可以簡化客戶端前臺的工作,更可以降低網(wǎng)絡(luò)的負(fù)荷,同時使整個系統(tǒng)設(shè)計更合理,便于維護移植和升級,后臺計劃任務(wù)作業(yè)在很多數(shù)據(jù)庫應(yīng)用中經(jīng)常會用到,當(dāng)然是配合存儲過程使用。
在SQL Server2000中,可以手動一步一步的在企業(yè)管理器中建立后臺計劃任務(wù)作業(yè),但這樣既麻煩也不便于發(fā)布,因此本文給出使用T-SQL腳本創(chuàng)建作業(yè)的方法。
需要下面三個SQL Server2000 msdb系統(tǒng)庫中的存儲過程來完成作業(yè)的建立,在此之前請先開啟數(shù)據(jù)庫實例的SQLServerAgent服務(wù),SQL Server安裝后默認(rèn)是沒有啟動該服務(wù)的。
順便說一句,SQL Server在2000版本中才有了明顯的“實例”的概念,在7.0版中沒有明確的實例,因此在SQL Server2000默認(rèn)安裝時創(chuàng)建了一個默認(rèn)實例,這是為了和SQl Server 7.0兼容,如果你是默認(rèn)方式創(chuàng)建的實例,則實例名為空。啥子?你不曉得啥子是“實例”?個人去找點資料看看,oracel、sybase都有實例和表空間,所以我叫SQL Server2000之前的SQL Server為桌面數(shù)據(jù)庫。
進入正題,步驟是“作業(yè)”-〉“作業(yè)調(diào)度”-〉“作業(yè)步驟”,具體如下:
1、使用sp_add_job 添加由 SQLServerAgent 服務(wù)執(zhí)行的新作業(yè)。
2、使用sp_add_jobschedule創(chuàng)建作業(yè)調(diào)度。
3、使用sp_add_jobstep將一個步驟(操作)添加到作業(yè)中
下面以在汽車客運站票務(wù)系統(tǒng)中的腳本為例給出實際例子,在看例子之前,請先看一下上面三個系統(tǒng)存儲過程的幫助。在例子中使用了一個自定義的存儲過程“tksp_bakdata”,它的功能是處理當(dāng)日之前售票數(shù)據(jù)(只需知道是一個自定義存儲過程就行了)。
例子1:每日0點30分處理售票數(shù)據(jù)
www.knowsky.com
use msdb
EXEC sp_add_job @job_name = 'tk_bakdata',
@enabled = 1,
@description = '每日00:30處理售票數(shù)據(jù)',
@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啟動時處理售票數(shù)據(jù),這樣在每天需要關(guān)機的服務(wù)器中也能保證處理售票數(shù)據(jù)。
use msdb
EXEC sp_add_job @job_name = 'tk_bakdata2',
@enabled = 1,
@description = '每日SQLServer啟動時處理售票數(shù)據(jù)',
@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
轉(zhuǎn)載于:https://www.cnblogs.com/xiangbo729/p/5081548.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的SQl 作业方面(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决svn:E200030: sqlit
- 下一篇: as400 编程语言c,AS400_RP