Jeśli używasz WAITFOR
w SQL Server, a otrzymasz następujący błąd, prawdopodobnie dlatego, że podajesz zapytanie jako jego argument.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
WAITFOR
oświadczenie nie przyjmuje zapytań przez okres oczekiwania na. Akceptuje tylko określony czas lub interwał.
Właściwie akceptuje RECEIVE
instrukcji, ale dotyczy to tylko komunikatów Service Broker, więc jeśli nie używasz komunikatów Service Broker, powyższy błąd jest dość oczywisty.
Przykład
Oto przykład nieprawidłowej próby użycia zapytania w WAITFOR
oświadczenie.
WAITFOR (SELECT Delay From DelayTable);
Wynik:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
Aby rozwiązać ten problem, musisz podać rzeczywisty czas lub opóźnienie czasowe.
Na przykład to zadziała.
WAITFOR DELAY '00:00:10';
Wynik:
Commands completed successfully. Total execution time: 00:00:09.993
W tym przypadku zastosowałem opóźnienie czasowe, ale możesz też użyć określonego czasu.
WAITFOR TIME '10:55:40';