반응형

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에 걸려 반복이 된다.

 

출처 : http://blog.naver.com/PostView.nhn?blogId=dlzmstks&logNo=172443221&parentCategoryNo=&categoryNo=11&viewDate=&isShowPopularPosts=true&from=search

반응형

+ Recent posts