Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

"Requête non autorisée dans Waitfor" Erreur 101 dans SQL Server

Si vous utilisez le WAITFOR dans SQL Server et que vous obtenez l'erreur suivante, c'est probablement parce que vous fournissez une requête comme argument.

Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.

Le WAITFOR l'instruction n'accepte pas les requêtes pendant sa période d'attente. Il n'accepte qu'une heure précise ou un intervalle.

En fait, il accepte RECEIVE instructions, mais cela ne s'applique qu'aux messages Service Broker, donc si vous n'utilisez pas les messages Service Broker, l'erreur ci-dessus est assez explicite.

Exemple

Voici un exemple de tentative incorrecte d'utiliser une requête dans le WAITFOR déclaration.

WAITFOR (SELECT Delay From DelayTable);

Résultat :

Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.

Pour résoudre ce problème, vous devrez fournir une heure réelle ou un délai.

Par exemple, cela fonctionnera.

WAITFOR DELAY '00:00:10';

Résultat :

Commands completed successfully.
Total execution time: 00:00:09.993

Dans ce cas, j'ai utilisé un délai, mais vous pouvez également utiliser un temps spécifique.

WAITFOR TIME '10:55:40';