MSSQL 임시 테이블

garamnoh·2023년 8월 3일
0

etc.

목록 보기
7/7

임시테이블

임시테이블은 해당 세션에서만 생성이 되었다가 세션이 끊어지면 자동으로 삭제되는 테이블이다.
임시테이블 생성시 두 가지 방법이 있다.
#, ## 을 사용하는 것인데
#은 지역, ##은 전역으로 사용할 수 있는 임시테이블이다.

생성 방법

아래와 같이 일반 테이블과 생성하는 방법은 같으며 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

1개의 댓글

comment-user-thumbnail
2023년 8월 3일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기