자주 쓰지는 않겠지만, 부득이하게 사용해야 할경우가 있다.
동적으로 쿼리가 실행되고 로직안에 로직이 들어가는 경우가 이에 해당한다.(하지만, 정말 특이한경우 아니면 사용을 안한다...;;;)
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;
----------------------------------------------------------------------------------------------------
-- 테이블이 있는지 검사하여 WSP_PCPS_PREX1000_R1 실행
----------------------------------------------------------------------------------------------------
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE [name] = 'TB_RPRT2500_' + @TARGET_PRJT)
BEGIN
INSERT @RESULTS_PS EXEC WSP_PCPS_PREX1000_R1 @TARGET_PRJT, 'PSSR', 'E'
END
SET @MIN_PRJT_CNT = @MIN_PRJT_CNT + 1;
END
'IT > MSSQL' 카테고리의 다른 글
배열 (0) | 2015.08.13 |
---|---|
칼럼 type, description 정보 추출 쿼리 (0) | 2015.08.10 |
에러 처리 (0) | 2015.02.13 |
Cross Apply (0) | 2015.01.06 |
동적쿼리 실행 out 변수에 담기 (0) | 2015.01.06 |