Pokud používáte WAITFOR
příkazu SQL Server a zobrazí se následující chyba, je to pravděpodobně proto, že jako argument poskytujete dotaz.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
WAITFOR
výpis nepřijímá dotazy na dobu „čekání na“. Přijímá pouze určitý čas nebo interval.
Ve skutečnosti přijímá RECEIVE
prohlášení, ale to platí pouze pro zprávy Service Broker, takže pokud nepoužíváte zprávy Service Broker, výše uvedená chyba je zcela samovysvětlující.
Příklad
Zde je příklad nesprávného pokusu o použití dotazu v WAITFOR
prohlášení.
WAITFOR (SELECT Delay From DelayTable);
Výsledek:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
Chcete-li tento problém vyřešit, budete muset zadat skutečný čas nebo časové zpoždění.
Například to bude fungovat.
WAITFOR DELAY '00:00:10';
Výsledek:
Commands completed successfully. Total execution time: 00:00:09.993
V tomto případě jsem použil časovou prodlevu, ale můžete použít i konkrétní čas.
WAITFOR TIME '10:55:40';