한 프로시저내에 동적쿼리와 정적쿼리가 동시에 존재합니다.
예를 들면
CRATE TABLE #TMP (~~~) INSERT INTO SELECT ~~ -- 정적쿼리부분
DECLARE @stmt nvarchar(MAX) -- 동적쿼리부분
SET @stmt = ' SELECT ~ FROM #TMP' -- #TMP가 인식되는게 신기함
SET @stmt = @stmt + '~~'
SET @stmt = @stmt + 'DROP TABLE #TMP'
EXEC sp_executesql @stmt
이렇게 구성해도 실행된다는게 이해가 가지않습니다.
특히 정적쿼리에서 생성된 #TMP 객체가 동적쿼리에서 인식된다는게 더더욱 신기하네요 ㅇㅇ
이 궁금증을 속시원히 풀어주실 고마우신분이 계시면 정말 감사드리겠습니다.
|