I am trying to execute a loop while
in Dbeaver with SQL Server, but the statement keeps loading and does not execute it. I just want to print the word ‘ok!’ 3 times.
I’m not sure if it’s a loop problem, a Dbeaver problem, or another.
Can anyone help please?
My code:
DECLARE @cnt INT = 0; WHILE @cnt < 3 BEGIN PRINT 'ok!'; END;
Advertisement
Answer
@cnt
never increments, so this loop will never finish. It will never yield control back to the system to let it even show the first ok
string. You need to add this:
DECLARE @cnt INT = 0; WHILE @cnt < 3 BEGIN PRINT 'ok!'; Set @cnt = @cnt + 1; END;
Anyway, 99 times out of a 100, if you’re writing a loop in SQL at all you’re doing something very wrong. SQL really wants to operating on whole sets at a time, not individual items in the sets via loops.