怎麼實現定時執行一個儲存過程
阿新 • • 發佈:2018-12-29
- 需求:客戶要求把A系統出來的一些資料每月底同步到指定表(在A系統資料庫)中。
- 實現方案:往指定表插資料採用儲存過程(
procA
)。每月底執行採用windows任務定時或“SQL Server代理——作業”實現。 - 怎麼使用windows自帶任務定時執行bat實現上述需求?
1、先建立執行儲存過程的sql檔案
mysql.sql
:檔案核心程式碼是執行儲存過程procA
的SQL,另外,此檔案裡可以寫各類sql語句。use 資料庫名 go exec procA go
2、建立bat檔案
test.bat
:訪問資料庫並執行sql指令碼。在cmd中可sqlcmd -?
瞭解各引數含義。注意,引數-i
是mysql.sql
檔案絕對路徑。sqlcmd -S 資料庫地址 -U 使用者名稱稱 -P 密碼 -i d:\mysql.sql
3、建立輸出日誌bat檔案
testDebug.bat
:執行test.bat
並把執行結果輸出到D:\test-Log.txt
(很詳細與sql server執行反饋一致)。@echo off call "D:\test.bat">D:\test-Log.txt start notepad D:\test-Log.txt
4、具體windows任務建立等參考win10 計劃任務中加入bat檔案執行、
2
- 怎麼使用SQL Server代理–作業實現上述需求?
在資料庫伺服器上登入SQL server management後找到資料庫的“sql server代理”並右鍵啟動,在“作業”右鍵"新建作業",操作截圖見“SQLserver建立代理作業”。怎麼檢視歷史執行情況?找到自己作業後右鍵“檢視歷史記錄” → “作業歷史記錄”勾選自己作業 → 右視窗展開加號即可看每次作業執行耗時等情況了。