프로그래밍/DB

[DB] MSSQL 루프문 처리방법

ss-pro 2021. 5. 17. 23:25
반응형

데이터베이스에서 루프문을  사용하고 싶은경우가 있습니다. 성능테스트를 위하여 일괄로 테스트데이터를  만들어 넣거나 반복해서 처리해야될 경우가 있습니다. 이때는 WHILE문을 사용하면됩니다. 

While문 사용예시 
while문을 조건이 만족할때까지 루프문을 반복합니다. 아래 예제의 경우는 Address테이블에 임의의값을 넣는부분으로 @iLoopCnt값이 30보다  작거나 같을경우에 반복합니다. 이와같이 루프문을 이용하면 테이블에 테스트 데이터를 넣을수 있고 해당부분으로 테스트 할수 있습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
declare @iLoopCnt  int 
declare @iCnt      int 
 
set @iLoopCnt =0 
set @iCnt = 30
 
--반복처리
while (@iLoopCnt <= @iCnt)
begin 
    insert into  [AdventureWorks2014].[Person].[Address] 
    ( AddressLine1,PostalCode,City,StateProvinceID)
    values 
    (@iLoopCnt, 'postalcode','City',79)
 
    set @iLoopCnt = @iLoopCnt +1
    print  @iLoopCnt
end 

반복문 처리도중 특정조건일경우에 빠져나오고 싶을경우에는 break문을 사용해서 루프문을 빠져나올수 있습니다. 일반적인 프로그램 하는 부분과 동일합니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
declare @iLoopCnt  int 
declare @iCnt      int 
 
set @iLoopCnt =0 
set @iCnt = 30
 
--반복처리
while (@iLoopCnt <= @iCnt)
begin 
    set @iLoopCnt = @iLoopCnt +1
 
    if @iLoopCnt <  10
        begin 
            print 'continue' + str(@iLoopCnt)
        end 
    else 
        begin 
            print  'break' + str(@iLoopCnt)
            break
        end 
end 
print 'exit loop'