저장 프로 시저에서 cte를 사용하고 있습니다.여러 번 생성하고 드롭 다운
나는 CTE가 자동으로 제거 될 때 여러 번, 나는 그것을 해결
감사
;WITH PAYOUT_CTE(REGNKEY, REGNTPE) AS (
SELECT REG_KEY, 'Parent'
FROM ML_MSTR_REGN A (NOLOCK)
WHERE A.COMP_NO = @COMP_NO
AND A.REG_KEY = @CUR_KEY
UNION ALL
SELECT B.REG_KEY, 'Child0'
FROM PAYOUT_CTE
INNER JOIN ML_MSTR_REGN B
ON B.COMP_NO = @COMP_NO
AND B.ORG_KEY = PAYOUT_CTE.REGNKEY
)
SELECT * INTO #PAYOUT_CTE_TMP FROM PAYOUT_CTE
다른 식별자
내가 떨어 뜨리거나 현재 CTE를 제거하는 방법에 대한 CTE를 채울 즉 그것을 사용해야합니다 insert 문 다음에 임시 테이블 #PAYOUT_CTE_TMP 만 문제를 일으켰습니다.
제 생각에 CTE는 일반 SQL 코드로 인라인됩니다. 단 하나의 명령문에 대해서만 존재합니다. 성명서가 끝나면 같은 이름의 다른 CTE를 정의 할 수 있습니다. 이 질문에 대한 대답이 있습니까? –