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

"Query non consentita in Waitfor" Errore 101 in SQL Server

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