IT/DB

MSSQL CURSOR 사용 / UPDATE문 반복 / INSERT문 반복

하루콩콩 2024. 11. 13. 09:07
반응형

/*

 ################################################################################################
 제         목  : 결과 집합을 반복처리하는 프로시저
 ################################################################################################

*/
CREATE PROCEDURE [dbo].[test_procedure]
WITH EXEC AS CALLER
AS

BEGIN

DECLARE @test_txt VARCHAR(50)
DECLARE @test_int DECIMAL(18, 2)

-- 커서를 선언하여 초기 SELECT 쿼리에서 test_txt test_int 를 반복 처리
DECLARE test_cursor CURSOR FOR
SELECT 
    a.text_txt AS text_txt, 
    a.test_int  AS test_int 
FROM tb_hahagogo a

-- 커서를 열고 첫 번째 행을 가져옴
OPEN test_cursor 
FETCH NEXT FROM test_cursor  INTO @ test_txt  , @ test_int  

-- 결과 집합을 반복 처리
WHILE @@FETCH_STATUS = 0
BEGIN

    -- testtest 테이블을 업데이트
    UPDATE testtest 
    SET match_int= @test_int   
        work_date = GETDATE()
    WHERE match_text = @test_txt   
      
    -- 다음 행을 가져옴
    FETCH NEXT FROM test_cursor   INTO @test_txt  , @ test_int  
END

-- 커서를 닫고 할당 해제
CLOSE test_cursor 
DEALLOCATE test_cursor 
END

반응형