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';