Se você estiver usando o
WAITFOR
instrução no SQL Server e você recebe o seguinte erro, provavelmente é porque você está fornecendo uma consulta como seu argumento. Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
O
WAITFOR
declaração não aceita consultas para seu período de "espera". Aceita apenas um horário específico ou um intervalo. Na verdade, ele aceita
RECEIVE
instruções, mas isso é aplicável apenas a mensagens do Service Broker, portanto, se você não estiver usando mensagens do Service Broker, o erro acima é bastante autoexplicativo. Exemplo
Aqui está um exemplo de tentativa incorreta de usar uma consulta no
WAITFOR
demonstração. WAITFOR (SELECT Delay From DelayTable);
Resultado:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
Para superar esse problema, você precisará fornecer um tempo real ou um atraso de tempo.
Por exemplo, isso funcionará.
WAITFOR DELAY '00:00:10';
Resultado:
Commands completed successfully. Total execution time: 00:00:09.993
Nesse caso, usei um atraso de tempo, mas você também pode usar um tempo específico.
WAITFOR TIME '10:55:40';