sql >> Base de Datos >  >> RDS >> Sqlserver

"Consulta no permitida en Waitfor" Error 101 en SQL Server

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