【SQL Server】SQLを定期的にスケジュール実行

SQL/データベース(DB)

SQL Server上で定期的なSQL実行が必要になった。
実現方法は、スケジュールはタスクスケジューラーを使用しSQLの実行はバッチファイル作成を行う。

実装方法

バッチファイル作成

コマンドはsqlcmdを使用。
バッチファイル(*.bat)の内容は以下のように定義。

sqlcmd -S サーバー名 -d データベース名 -U ユーザー名 -P パスワード -i SQL定義ファイル名

SQL定義ファイル作成

SQL定義ファイル(*.sql)の中身に実行させるSQL文を記述。

UPDATE B
SET
B.原価 = A.単価 * B.個数
FROM
Aテーブル AS A INNER JOIN Bテーブル AS B ON A.コード = B.コード

タスクスケジューラー登録

上記2ファイル完成後、タスクスケジューラーでタスクの作成。
プログラム/スクリプトは、作成したバットファイルを指定。

まとめ

データベース更新時、処理時間や負荷がかかるものがありバッチ処理を利用した。
手順としては、
1:SQL作成
2:バッチファイル作成
3:タスクスケジューラー登録
1及び2は単体で動作確認後、タスクスケジューラーに登録する方法がいいでしょう。

コメント