WHILE 문은 지정된 조건이 True인 동안 문 또는 문 블록을 반복합니다.
WHILE과 함께 주로 사용되는 Transact-SQL 문은 BREAK와 CONTINUE, 이렇게 두 가지입니다. BREAK 문은 가장 안쪽의 WHILE 루프를 종료하고 CONTINUE 문은 WHILE 루프를 다시 시작합니다. 예를 들어 프로그램에서 처리할 행이 더 없는 경우 BREAK 문을 실행할 수 있습니다. CONTINUE 문은 코드를 계속 실행해야 하는 등의 경우에 실행할 수 있습니다.
참고:
SELECT 문이 WHILE 문의 조건으로 사용되면 SELECT 문은 괄호 안에 있어야 합니다. |
다음 예에서는 WHILE 문을 사용하여 수행할 인출 수를 제어합니다.
코드 복사
USE AdventureWorks; GO DECLARE abc CURSOR FOR SELECT * FROM Purchasing.ShipMethod; OPEN abc; FETCH NEXT FROM abc WHILE (@@FETCH_STATUS = 0) FETCH NEXT FROM abc; CLOSE abc; DEALLOCATE abc; GO |
기타 유효한 WHILE 조건 테스트는 다음과 같습니다
WHILE (@ACounterVariable < 100) |
또는
WHILE EXISTS(SELECT LastName FROM Person.Contact WHERE FirstName = N'Anne') |
다음 예에서는 제품의 평균 정가가 $300 미만인 경우 WHILE 루프가 가격을 두 배로 한 다음 최대 가격을 선택합니다. 최대 가격이 $500 이하인 경우 WHILE 루프가 다시 시작되어 가격을 다시 두 배로 만듭니다. 이 루프는 최대 가격이 $500를 초과할 때까지 가격을 계속 두 배로 만든 다음 WHILE 루프를 종료하고 메시지를 출력합니다.
USE AdventureWorks; GO WHILE (SELECT AVG(ListPrice) FROM Production.Product) < $300 BEGIN UPDATE Production.Product SET ListPrice = ListPrice * 2 SELECT MAX(ListPrice) FROM Production.Product IF (SELECT MAX(ListPrice) FROM Production.Product) > $500 BREAK ELSE CONTINUE END PRINT 'Too much for the market to bear'; |
tempdb의 디스크 공간 부족 문제 해결 (0) | 2020.04.20 |
---|---|
네트워크에서 또는 네트워크 없이 SQL Server 실행 (0) | 2020.04.20 |
흐름 제어 (0) | 2020.04.17 |
메타데이터 액세스, 격리 수준 및 잠금 힌트 (0) | 2020.04.17 |
커서 동시성(데이터베이스 엔진) (0) | 2020.04.17 |
댓글 영역