Naast de WHILE 1 = 1
zoals de andere antwoorden suggereren, voeg ik vaak een "time-out" toe aan mijn SQL "infintie"-lussen, zoals in het volgende voorbeeld:
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
Ik vond de bovenstaande techniek nuttig binnen een opgeslagen procedure die wordt aangeroepen door een lange polling Ajax achterkant. Door de lus aan de databasezijde te hebben, hoeft de toepassing niet constant de database te raken om te controleren op nieuwe gegevens.