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 '%磁碟%' --這是查出錯誤訊息中包含「磁碟」的代號
留言
張貼留言