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