SQl 作业方面(转)
企業管理器?
--管理?
--SQL Server代理?
--右鍵作業?
--新建作業?
--"常規"項中輸入作業名稱?
--"步驟"項?
--新建?
--"步驟名"中輸入步驟名?
--"類型"中選擇"Transact-SQL 腳本(TSQL)"?
--"數據庫"選擇執行命令的數據庫?
--"命令"中輸入要執行的語句:?
update base set flag=0 where datediff(dd,date,getdate())=0
--確定?
--"調度"項?
--新建調度?
--"名稱"中輸入調度名稱?
--"調度類型"中選擇你的作業執行安排?
--如果選擇"反復出現"?
--點"更改"來設置你的時間安排為一天一次
然后將SQL Agent服務啟動,并設置為自動啟動,否則你的作業不會被執行
設置方法:?
我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.
?
在數據庫的應用系統中,充分的利用數據庫的后臺服務端的功能可以可以簡化客戶端前臺的工作,更可以降低網絡的負荷,同時使整個系統設計更合理,便于維護移植和升級,后臺計劃任務作業在很多數據庫應用中經常會用到,當然是配合存儲過程使用。
在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
轉載于:https://www.cnblogs.com/xiangbo729/p/5081548.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的SQl 作业方面(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决svn:E200030: sqlit
- 下一篇: as400 编程语言c,AS400_RP