Si está utilizando WAITFOR
en SQL Server y recibe el siguiente error, probablemente se deba a que está proporcionando una consulta como argumento.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
El WAITFOR
declaración no acepta consultas para su período de "espera". Solo acepta un tiempo específico o un intervalo.
En realidad, acepta RECEIVE
declaraciones, pero esto solo se aplica a los mensajes de Service Broker, por lo que si no está utilizando mensajes de Service Broker, el error anterior se explica por sí mismo.
Ejemplo
Aquí hay un ejemplo de un intento incorrecto de usar una consulta en WAITFOR
declaración.
WAITFOR (SELECT Delay From DelayTable);
Resultado:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
Para solucionar este problema, deberá proporcionar una hora real o un retraso de tiempo.
Por ejemplo, esto funcionará.
WAITFOR DELAY '00:00:10';
Resultado:
Commands completed successfully. Total execution time: 00:00:09.993
En este caso, usé un retraso de tiempo, pero también puedes usar un tiempo específico.
WAITFOR TIME '10:55:40';