私はストアドプロシージャでcteを使用しています。cteを複数回作成して削除する
CTEが自動的に削除されるように私は、それを解決し、私はすなわち、異なるIDの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を削除することができ、それを複数回使用する必要が
insert文の後に テンポラリテーブル#PAYOUT_CTE_TMPだけが問題を引き起こしていました。
私の理解では、CTEは通常のSQLコードにインライン化され、1つのステートメントに対してのみ存在します。ステートメントが終了したら、同じ名前の別のCTEを定義することができます。これはあなたの質問に答えますか? –