임시테이블은 해당 세션에서만 생성이 되었다가 세션이 끊어지면 자동으로 삭제되는 테이블이다.
임시테이블 생성시 두 가지 방법이 있다.
#, ## 을 사용하는 것인데
#은 지역, ##은 전역으로 사용할 수 있는 임시테이블이다.
아래와 같이 일반 테이블과 생성하는 방법은 같으며 CREATE 외에도 SELECT INTO 등 모두 사용 가능하다.
생성을 하고 나면 tempdb 에서 테이블을 확인 할 수 있다.
-- 지역
CREATE TABLE #TEMP_TABLE (
NAME VARCHAR(10),
AGE VARCHAR(10)
)
-- 전역
CREATE TABLE ##TEMP_TABLE (
NAME VARCHAR(10),
AGE VARCHAR(10)
)
DB 툴 (DBeaver 등) 에서 새 SQL 편집기를 2개 (ex. script-1.sql, script-2.sql) 띄워 놓고 테스트 진행
1. script-1.sql 에서 #testTable, ##testTable 을 생성한다.
2. script-1.sql 에서 #testTable, ##testTable 을 조회하면 모두 조회가 된다.
3. script-2.sql 에서 #testTable, ##testTable 을 조회하면 #testTable은 조회가 되지 않고 ##testTable은 조회가 된다.
IBATIS 사용시 #을 사용해서 임시테이블을 생성하려 했으나 오류 발생
## 사용시 오류 발생하지 않음
Stack Over Flow의 한 답변에 따르면 ibatis에서 ##이 #을 대체한다고 한다.
참고 : Stack Over Flow
공감하며 읽었습니다. 좋은 글 감사드립니다.