本日は、こんなコマンドあるんだ~と思ったものを紹介したいと思います。
タイトル通り、SQL Serverで処理の実行中にスリープさせるコマンドをご紹介したいと思います。
WAITFOR コマンド
SQL Serverで処理の実行をスリープさせるコマンドがあります。
WAITFORコマンドです。このコマンドは、IFやWHILEのようなフロー制御言語の一つみたいです。構文は以下の通りです。
'time_to_pass'にスリープする時間の長さを指定します。書式は「hh:mm[[:ss].mss] 」で指定できます。
WAITFOR DELAY 'time_to_pass'
実際に使った結果を見ると分かりやすいと思います。以下の通りです。
WAITFORコマンドで5秒のスリープをしてみた結果です。
WAITFORコマンドの前後に、GETDATE()でコマンド実行時の時間を出力させてどうなるか確認しています。
実行結果はそれぞれ以下の通りで、たしかに5秒間隔で実行されていることが分かります。
- WAITFOR実行前:2021-09-03 19:31:52.007
- WAITFOR実行後:2021-09-03 19:31:57.013
参考
細かい用法などは以下の公式ページを見ていただければと思います。
WAITFOR (Transact-SQL) - SQL Server | Microsoft Docs