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

Jak zorganizować nieskończoną pętlę while w SQL Server?

Oprócz WHILE 1 = 1 jak sugerują inne odpowiedzi, często dodaję "timeout" do moich pętli "infintie" SQL, jak w poniższym przykładzie:

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

Uważam, że powyższa technika jest przydatna w ramach procedury składowanej, która jest wywoływana z długiego odpytywania AJAX zaplecze. Posiadanie pętli po stronie bazy danych uwalnia aplikację od konieczności ciągłego odwiedzania bazy danych w celu sprawdzenia świeżych danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień typy kolumn w ogromnej tabeli

  2. Pobierz podciąg w SQL Server

  3. Znajdź unikalne wartości w kolumnie tekstu oddzielonego przecinkami

  4. Używanie zmiennej dla nazwy tabeli w klauzuli „Od” w SQL Server 2008

  5. Jak usunąć całkowicie zduplikowane wiersze