본문으로 건너뛰기

SQL 프로그래밍(2)

WHILE, CONTINUE, BREAK

WHILE

참인 동안 계속 반복되는 반복문


CONTINUE, BREAK

CONTINUE는 WHILE 문의 비교문으로 이동하고, BREAK는 WHILE 문을 빠져나감


구문 형식

DECLARE @i int -- 1에서 100까지 증가할 수
DECLARE @acc BIGINT -- 더한 값을 누적할 변수

SET @i = 1
SET @acc = 0

WHILE (@i <= 100)
BEGIN -- WHILE문 블럭 시작
IF (@i % 7 = 0)
BEGIN
PRINT '7배수:' + CAST(@i AS NCHAR(3))
SET @i = @i + 1
CONTINUE
END

SET @acc = @acc + @i

IF (@acc > 1000) BREAK
SET @i = @i + 1
END -- WHILE문 블럭 종료

PRINT '합계 = ' + CAST(@acc AS NCHAR(3));


GOTO

지정한 위치로 무조건 이동함 되도록 사용하지 않는 것이 좋은 구문

-- ...(중간 생략)
SET @acc += i
if (@acc > 1000) GOTO endPrint
SET @i += i
END

endprint:
PRINT N '합계 = ' + CAST(@acc AS NCHAR(10))


WAITFOR : WAITFOR DELAY / WAITFOR TIME

코드의 실행을 정지함

WAITFOR DELAY

지정한 시간만큼 일시정지하는 구문


WAITFOR TIME

지정한 시각에 실행하는 구문


BEGIN
WAITFOR DELAY '00:00:05';
PRINT N '5초간 멈춘 후 진행되었습니다';
END