Hvis du bruger WAITFOR
sætning i SQL Server, og du får følgende fejl, er det sandsynligvis fordi du angiver en forespørgsel som argument.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
WAITFOR
erklæringen accepterer ikke forespørgsler i dens "vente på"-periode. Den accepterer kun et bestemt tidspunkt eller et interval.
Faktisk accepterer den RECEIVE
erklæringer, men dette gælder kun for Service Broker-meddelelser, så hvis du ikke bruger Service Broker-meddelelser, er ovenstående fejl ganske selvforklarende.
Eksempel
Her er et eksempel på forkert forsøg på at bruge en forespørgsel i WAITFOR
erklæring.
WAITFOR (SELECT Delay From DelayTable);
Resultat:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
For at løse dette problem skal du angive et faktisk tidspunkt eller en tidsforsinkelse.
For eksempel vil dette virke.
WAITFOR DELAY '00:00:10';
Resultat:
Commands completed successfully. Total execution time: 00:00:09.993
I dette tilfælde brugte jeg en tidsforsinkelse, men du kan også bruge en bestemt tid.
WAITFOR TIME '10:55:40';