Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка 101 „Запитването не е позволено в изчакване“ в SQL Server

Ако използвате WAITFOR изявление в SQL Server и получавате следната грешка, вероятно защото предоставяте заявка като негов аргумент.

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

WAITFOR изявлението не приема заявки за своя период на „изчакване“. Приема само определено време или интервал.

Всъщност той приема RECEIVE изявления, но това е приложимо само за съобщения на Service Broker, така че ако не използвате съобщенията Service Broker, горната грешка е съвсем разбираема.

Пример

Ето пример за неправилен опит за използване на заявка в WAITFOR изявление.

WAITFOR (SELECT Delay From DelayTable);

Резултат:

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

За да преодолеете този проблем, ще трябва да предоставите действително време или закъснение.

Например, това ще работи.

WAITFOR DELAY '00:00:10';

Резултат:

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

В този случай използвах закъснение във времето, но можете да използвате и определено време.

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. Добавете IIS 7 AppPool Identities като входове в SQL Server

  2. Как да промените нивото на съвместимост на база данни с T-SQL

  3. Внимание на потребителите, работещи с SQL Server 2008 и SQL Server 2008 R2

  4. Избройте всички външни ключове в таблица в SQL Server

  5. Как да премахнете крайния празен интервал в SQL Server – RTRIM()