Ако използвате 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';