SQL Server や T-SQL を初めて学ぶ人のための学習サイトです。 便利なクエリーやチューニングの仕方なども掲載しています。
SQL Server 入門
T-SQL 入門
便利なT-SQL&クエリー集
SQL Server&T-SQLに関するコラム
サイト情報
MCTS: SQL Server 2008, Database Development
サイト内検索
カスタム検索
ホーム > 便利なT-SQL&クエリー集 > T-SQL: クエリーでスリープ (sleep) させる

T-SQL: クエリーでスリープ (sleep) させる

SQL でスリープ(sleep)させる

たま~に、ストアドプロシジャー内で一定期間、スリープ(sleep)させたいような時ありませんか?

C# で言えば、Thread.Sleep メソッドのような感じです。

ここでは、そんな時に使える、フロー制御言語をご紹介します。


フロー制御言語 - WAITFOR

ストアードプロシジャー内などで、一定期間、実行をブロックさせたい時には、フロー制御言語の WAITFOR を使います。

例えば、5 秒間ブロックしたい時は、WAITFOR DELAY を使って以下のように指定します。

WAITFOR DELAY '00:00:05';

SQL でスリープ(sleep)させる 1

DELAY の後には、DateTime 型の時間の部分のみを指定します。 日付の部分まで含めると、エラーになってしまいます。

最大 24 時間まで指定することができます。


他にも、WAITFOR TIME を使うことによって、指定の時間まで、実行をブロックすることができます。

例えば 17 時 54 分 30 秒までブロックしたい時は以下のように指定します。

WAITFOR TIME '17:54:30';

SQL でスリープ(sleep)させる 2

こちらも、TIME の後に指定できるのは DateTime 型の時間の部分のみです。

普段の開発にはあまり使わないかもしれませんが、知っておくとなかなか便利です!



ホーム > 便利なT-SQL&クエリー集 > T-SQL: クエリーでスリープ (sleep) させる

© 2014 SQL Server 入門