SQL Server Agent自動化處理


接著要展示個簡單的範例,每分鐘新增一筆資料
在SQL Server Agent中
每個事件叫作業(job),而每個作業可以有很多步驟(step)
我們的作業是「每分鐘新增一筆資料」

先新增一個Table吧!

use 練練
go 

CREATE table 自動存入表
(
 編號 INT IDENTITY(1,1),
 姓名 NVARCHAR(5),
 薪資 MONEY

)
GO

接著,在Agent→作業按右鍵,選擇新增作業:



進入後名稱任意取名:



選擇步驟,點選新增:


步驟名稱任意取名,資料庫記得選對應的「練練」
並在命令框中輸入SQL 指令:


設定好步驟,接著設定排程:


點選新增後,這排程功能強大
自由設定相當的高,不過我們只要每分鐘:


接著還有「警示」及「通知」
警示是發生一些例外狀況時,可以選擇對應的作為
像是磁碟空間不夠時要通知那個操作員處理等等
而通知是可以選擇當作業完成、成功或失敗進行通知指定操作員的行為


按圖操作,應該每分鐘阿土伯都會被INSERT進入自動存入表了
作業完成後,在列表中應該會出現一個叫「每分鐘新增一筆資料」的作業
按右鍵有2個比較特別的選項,一個叫停止作業,一個叫停用



停止作業的意思是:當這個作業在執行中時,使用者可以叫該作業停止不做了
停用的意思是:使用者不再需要使用這個作業

============================================================================

接下來,我們要做的是加一個步驟,叫「寫入錢夫人」
這邊要注意的是,剛剛第一步寫入阿土伯要的步驟要修改一下:


成功要記得移至下一步,不然永遠都只會做第一筆
輸出檔是可以將執行紀錄另行輸出,可以做錯誤時的參考
接著要新增步驟:

如此每分鐘都會寫入阿土伯及錢夫人這2筆。


那如果,今天有個情況是我只想做寫入錢夫人
不想寫入阿士伯呢?
指令碼如下:

EXECUTE msdb.dbo.sp_start_job  @job_name='每分鐘新增一筆資料',@step_name='寫入錢夫人'
--自動化的procedure都在msdb資料庫中

SELECT * FROM SYS.messages WHERE TEXT LIKE '%磁碟%'
--這是查出錯誤訊息中包含「磁碟」的代號

留言

熱門文章