프로그래밍/SSMS

[CURSOR] CURSOR를 이용한 TRY, CATCH

bluecandyg 2021. 4. 16. 14:47
DECLARE 
@DECRYPT1 INT,
@DECRYPT2 INT,
@RESULT INT

DECLARE CUR CURSOR FOR   -- CUR라는 이름의 커서 선언

SELECT 1, 1 UNION ALL
SELECT 2, 0 UNION ALL
SELECT 4, 0 UNION ALL
SELECT 3, 1

OPEN CUR      --커서 오픈
FETCH NEXT FROM CUR INTO @DECRYPT1, @DECRYPT2  --SELECT한 값을 @DECRYPT1,@DECRYPT2 변수에 넣는다.

--커서를이용해 한ROW씩 읽음 
WHILE @@FETCH_STATUS = 0

	BEGIN

		BEGIN TRY
			SET @RESULT = @DECRYPT1 / @DECRYPT2  -- 암호화 함수
		END TRY

		BEGIN CATCH  
			SELECT @DECRYPT1, @DECRYPT2
		END CATCH
	
		FETCH NEXT FROM CUR INTO @DECRYPT1, @DECRYPT2	--다음ROW로 이동

	END

--커서 닫고 초기화
CLOSE CUR
DEALLOCATE CUR