Se stai usando WAITFOR
istruzione in SQL Server e viene visualizzato il seguente errore, probabilmente perché stai fornendo una query come argomento.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
Il WAITFOR
l'istruzione non accetta query per il periodo di "attesa". Accetta solo un'ora o un intervallo specifico.
In realtà, accetta RECEIVE
dichiarazioni, ma questo è applicabile solo ai messaggi di Service Broker, quindi se non stai utilizzando i messaggi di Service Broker, l'errore sopra è abbastanza autoesplicativo.
Esempio
Ecco un esempio di tentativo errato di utilizzare una query in WAITFOR
dichiarazione.
WAITFOR (SELECT Delay From DelayTable);
Risultato:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
Per ovviare a questo problema, dovrai fornire un orario effettivo o un ritardo.
Ad esempio, funzionerà.
WAITFOR DELAY '00:00:10';
Risultato:
Commands completed successfully. Total execution time: 00:00:09.993
In questo caso, ho utilizzato un ritardo temporale, ma puoi anche utilizzare un tempo specifico.
WAITFOR TIME '10:55:40';