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

Как да организирам безкраен цикъл while в SQL Server?

В допълнение към WHILE 1 = 1 както предполагат другите отговори, често добавям "време за изчакване" към моите SQL "infintie" цикли, както в следния пример:

DECLARE @startTime datetime2(0) = GETDATE();

-- This will loop until BREAK is called, or until a timeout of 45 seconds.
WHILE (GETDATE() < DATEADD(SECOND, 45, @startTime))
BEGIN
    -- Logic goes here: The loop can be broken with the BREAK command.

    -- Throttle the loop for 2 seconds.    
    WAITFOR DELAY '00:00:02';
END

Намерих горната техника полезна в рамките на съхранена процедура, която се извиква от дълго запитване AJAX бекенд. Наличието на цикъл от страна на базата данни освобождава приложението от необходимостта постоянно да натиска базата данни, за да проверява за свежи данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Total Sum с изваждане, ако се направи нов запис в таблицата

  2. Как да получите първата и последната дата на текущата година?

  3. Добавете стойност по подразбиране на полето за дата и час в SQL Server към времева марка

  4. Какво наистина прави методът Statement.setFetchSize(nSize) в JDBC драйвер на SQL Server?

  5. Как мога сигурно да унищожа някои данни с помощта на sql server 2008? (използване на защитено изтриване на DoD или еквивалент)