sql >> Databasteknik >  >> RDS >> Sqlserver

"Fråga inte tillåten i Waitfor" Fel 101 i SQL Server

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

  1. det går inte att skapa autoinkrementerande primärnyckel med flask-sqlalchemy

  2. Hur man ersätter null-värden med okänt i Select-sats i SQL Server - SQL Server / TSQL självstudie del 111

  3. Vad är skillnaden mellan att använda en korskoppling och att sätta ett kommatecken mellan de två tabellerna?

  4. SQL Server, konvertera en namngiven instans till standardinstans?