Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

„Zapytanie niedozwolone w Waitfor” Błąd 101 w SQL Server

Jeśli używasz WAITFOR w SQL Server, a otrzymasz następujący błąd, prawdopodobnie dlatego, że podajesz zapytanie jako jego argument.

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

WAITFOR oświadczenie nie przyjmuje zapytań przez okres oczekiwania na. Akceptuje tylko określony czas lub interwał.

Właściwie akceptuje RECEIVE instrukcji, ale dotyczy to tylko komunikatów Service Broker, więc jeśli nie używasz komunikatów Service Broker, powyższy błąd jest dość oczywisty.

Przykład

Oto przykład nieprawidłowej próby użycia zapytania w WAITFOR oświadczenie.

WAITFOR (SELECT Delay From DelayTable);

Wynik:

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

Aby rozwiązać ten problem, musisz podać rzeczywisty czas lub opóźnienie czasowe.

Na przykład to zadziała.

WAITFOR DELAY '00:00:10';

Wynik:

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

W tym przypadku zastosowałem opóźnienie czasowe, ale możesz też użyć określonego czasu.

WAITFOR TIME '10:55:40';

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przestaw SQL Server a sprzężenie wielokrotne

  2. SQL Server 2016:Widok projektanta

  3. Konwertuj zapytanie SQL Server na MySQL

  4. Jak zapobiegać atakom typu SQL Injection przez bezpieczne?

  5. Łączenie się z lokalną bazą danych SQL Server przy użyciu C#