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