Wenn Sie den WAITFOR
verwenden -Anweisung in SQL Server und Sie erhalten den folgenden Fehler, wahrscheinlich weil Sie eine Abfrage als Argument angeben.
Msg 101, Level 15, State 1, Line 1
Query not allowed in Waitfor.
Das WAITFOR
-Anweisung akzeptiert keine Abfragen für die „Warten auf“-Periode. Es akzeptiert nur eine bestimmte Zeit oder ein Intervall.
Tatsächlich akzeptiert es RECEIVE
-Anweisungen, aber dies gilt nur für Service Broker-Nachrichten. Wenn Sie also keine Service Broker-Nachrichten verwenden, ist der obige Fehler ziemlich selbsterklärend.
Beispiel
Hier ist ein Beispiel für den fälschlichen Versuch, eine Abfrage im WAITFOR
zu verwenden Aussage.
WAITFOR (SELECT Delay From DelayTable);
Ergebnis:
Msg 101, Level 15, State 1, Line 1 Query not allowed in Waitfor.
Um dieses Problem zu umgehen, müssen Sie eine tatsächliche Zeit oder eine Zeitverzögerung angeben.
Dies wird zum Beispiel funktionieren.
WAITFOR DELAY '00:00:10';
Ergebnis:
Commands completed successfully. Total execution time: 00:00:09.993
In diesem Fall habe ich eine Zeitverzögerung verwendet, aber Sie können auch eine bestimmte Zeit verwenden.
WAITFOR TIME '10:55:40';