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は単体で動作確認後、タスクスケジューラーに登録する方法がいいでしょう。
コメント