반응형
MSSQL에서 반복문 While 쓸때 주의할점,,
Case 1.
DECLARE @AA INT, @BB INT
SET @AA = 0
SET @BB = 0
WHILE @AA < 10
SET @AA = @AA + 1
SET @BB = @BB + @AA
SELECT @BB
GO
Case 2.
DECLARE @AA INT, @BB INT
SET @AA = 0
SET @BB = 0
WHILE @AA < 10
BEGIN
SET @AA = @AA + 1
SET @BB = @BB + @AA
END
SELECT @BB
GO
Case 1. 과 Case 2. 의 차이점은 무엇일까??
일단 BEGIN ~ END 의 있고 없고의 차이인데, 여기에 따라서 결과가 엄청나게 달라지니
Case 1.
Case 2.
이 둘의 차이는,
Case 1. 처럼 BEGIN ~ END 문이 없다면, WHILE문 바로 아래의 한줄만 WHILE에 걸려 조건이 해당될때까지 계속 반복되고,,
Case 2. 처럼 BEGIN ~ END 문이 있다면, 그 사이의 모든 구문이 WHILE에 걸려 반복이 된다.
반응형
'DB > MSSQL' 카테고리의 다른 글
MSSQL 데이터 타입 크기 범위 (0) | 2020.04.14 |
---|---|
[MSSQL] SET NOCOUNT 정의와 사용법 (프로시저 성능 향상) (0) | 2020.04.08 |
PL/SQL - 기본(DECLARE, BEGIN, END) (0) | 2020.04.08 |
DECALRE : 로컬 변수 선언 (0) | 2020.04.08 |
MS SQL의 GO 의 의미 (0) | 2020.04.08 |