1. 程式人生 > >怎麼實現定時執行一個儲存過程

怎麼實現定時執行一個儲存過程

  • 需求:客戶要求把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 -?

瞭解各引數含義。注意,引數-imysql.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建立代理作業”。怎麼檢視歷史執行情況?找到自己作業後右鍵“檢視歷史記錄” → “作業歷史記錄”勾選自己作業 → 右視窗展開加號即可看每次作業執行耗時等情況了。