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