Om du använder WAITFOR
uttalande i SQL Server och du får följande fel, det beror förmodligen på att du tillhandahåller en fråga som argument.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
WAITFOR
uttalandet accepterar inte frågor under sin "vänta på"-period. Den accepterar bara en specifik tid eller ett intervall.
Egentligen accepterar den RECEIVE
uttalanden, men detta är bara tillämpligt på Service Broker-meddelanden, så om du inte använder Service Broker-meddelanden är ovanstående fel ganska självförklarande.
Exempel
Här är ett exempel på felaktigt försök att använda en fråga i WAITFOR
uttalande.
WAITFOR (SELECT Delay From DelayTable);
Resultat:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
För att lösa det här problemet måste du ange en faktisk tid eller en tidsfördröjning.
Detta kommer till exempel att fungera.
WAITFOR DELAY '00:00:10';
Resultat:
Commands completed successfully. Total execution time: 00:00:09.993
I det här fallet använde jag en tidsfördröjning, men du kan också använda en specifik tid.
WAITFOR TIME '10:55:40';