WAITFOR
を使用している場合 SQL Serverでステートメントを実行すると、次のエラーが発生します。これは、引数としてクエリを指定していることが原因である可能性があります。
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
WAITFOR
ステートメントは、「待機」期間のクエリを受け入れません。特定の時間または間隔のみを受け入れます。
実際には、RECEIVE
を受け入れます ステートメントですが、これはService Brokerメッセージにのみ適用されるため、Service Brokerメッセージを使用していない場合、上記のエラーは非常に自明です。
例
WAITFOR
でクエリを誤って使用しようとした例を次に示します。 ステートメント。
WAITFOR (SELECT Delay From DelayTable);
結果:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
この問題を解決するには、実際の時間または時間遅延を指定する必要があります。
たとえば、これは機能します。
WAITFOR DELAY '00:00:10';
結果:
Commands completed successfully. Total execution time: 00:00:09.993
この場合、時間遅延を使用しましたが、特定の時間を使用することもできます。
WAITFOR TIME '10:55:40';