sql >> Database teknologi >  >> RDS >> Sqlserver

"Forespørgsel ikke tilladt i Waitfor" Fejl 101 i SQL Server

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

  1. PostgreSQL træning for MySQLere

  2. DevOps-overvejelser for produktionsklare databaseimplementeringer

  3. Sådan fungerer UTC_TIME() i MariaDB

  4. Sådan installeres MySQL på Debian 7