MSSQL 프로시저 실행하여 테이블에 넣기

프로시저를 실행해서 그대로 끝나면 되는데 실행한 프로시저 select 정보를 특정 테이블에 담아 또다른 처리를 하는 프로시저가 생기는 일이 종종 있습니다.


select되는 프로시저 안의 로직이 복잡한 경우에 사용될것이고 하여 오늘은 MSSQL 프로시저 실행하여 테이블에 넣기에 대해서 알아보겠습니다.




-- 프로시저를 실행해서 select된 정보를 담아놓는 테이블 변수 생성
DECLARE @RESULTS_PS TABLE
(
 PRJT_CD    VARCHAR(10)
 , PROG_SCH011  MONEY
 , PROG_SCH014  MONEY
)

-- 프로젝트 조건이 없을 경우 사용자의 모든 프로젝트 정보를 보여 줘야 하기 때문에 LOOP 사용
DECLARE @MAX_PRJT_CNT INT; SELECT @MAX_PRJT_CNT = MAX(NUM) FROM FFN_PCPS_ALL_PRJT(@PRJT_CD, @USER_ID);
DECLARE @MIN_PRJT_CNT INT; SET @MIN_PRJT_CNT = 1;
DECLARE @TARGET_PRJT VARCHAR(10);

WHILE (@MIN_PRJT_CNT <= @MAX_PRJT_CNT)
BEGIN
 SELECT @TARGET_PRJT = PRJT_CD FROM FFN_PCPS_ALL_PRJT(@PRJT_CD, @USER_ID) WHERE NUM = @MIN_PRJT_CNT;

 -- 테이블이 있는지 검사하여 프로시저 실행
 IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE [name] = 'TB_RPRT2500_' + @TARGET_PRJT)
 BEGIN
  -- 로직이 복잡한 WSP_PCPS_PREX1000_R1 프로시저 실행하여 @RESULTS_PS 테이블 변수에 정보 넣기
  INSERT @RESULTS_PS EXEC WSP_PCPS_PREX1000_R1 @TARGET_PRJT, 'PSSR', 'E'
 END

 SET @MIN_PRJT_CNT = @MIN_PRJT_CNT + 1;
END





이상으로 MSSQL 프로시저 실행하여 테이블에 넣기에 대해서 알아보았습니다.
오늘도 행복한 하루 되세요!

댓글

이 블로그의 인기 게시물

껌 떼는 법 (완벽 제거)

학점 계산기 (백분위 환산) 완벽 정리

[엑셀] 셀에 수식 적용하는 모든 것 완벽 정리