ITエンジニアの成長ブログ

ITエンジニアとして行う勉強の発信&日々の生活で体験した楽しいことをゆるく発信

SQL Serverで処理の実行中にスリープさせる方法

本日は、こんなコマンドあるんだ~と思ったものを紹介したいと思います。
タイトル通り、SQL Serverで処理の実行中にスリープさせるコマンドをご紹介したいと思います。

WAITFOR コマンド

SQL Serverで処理の実行をスリープさせるコマンドがあります。
WAITFORコマンドです。このコマンドは、IFやWHILEのようなフロー制御言語の一つみたいです。構文は以下の通りです。
'time_to_pass'にスリープする時間の長さを指定します。書式は「hh:mm[[:ss].mss] 」で指定できます。

WAITFOR DELAY 'time_to_pass'   


実際に使った結果を見ると分かりやすいと思います。以下の通りです。
WAITFORコマンドで5秒のスリープをしてみた結果です。

f:id:mr_star:20210903193514p:plain
WAITFORコマンド実行結果①

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