Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mengatur loop while tak terbatas di SQL Server?

Selain WHILE 1 = 1 seperti yang disarankan oleh jawaban lain, saya sering menambahkan "batas waktu" ke loop "infintie" SQL saya, seperti pada contoh berikut:

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

Saya menemukan teknik di atas berguna dalam prosedur tersimpan yang dipanggil dari jajak pendapat panjang AJAX bagian belakang. Memiliki loop di sisi database membebaskan aplikasi dari keharusan terus-menerus menekan database untuk memeriksa data baru.



  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 Server 2008 - Apakah pemicu berjalan dengan izin yang sama dengan login/pengguna?

  2. Masalah datetime dengan vb.net dan MSSQL

  3. Mengekspor dari SQL Server ke Excel dengan header kolom?

  4. Jalankan skrip SQL besar (dengan perintah GO)

  5. Sisipkan Massal Di SQL Server CE