В допълнение към 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 бекенд. Наличието на цикъл от страна на базата данни освобождава приложението от необходимостта постоянно да натиска базата данни, за да проверява за свежи данни.