티스토리 뷰
임시 테이블(Temporary Table) 이란?
일시적인 데이터를 저장하고 관리하기 위해 사용되는 테이블로, 특정 세션이나 트랜잭션 내에서만 유지되며 자동으로 삭제됩니다. 이는 복잡한 쿼리 결과를 재사용하거나 데이터 가공에 유용하게 활용할 수 있습니다.
임시 테이블 생성 방법
임시 테이블은 로컬 임시 테이블(Local Temporary Table)과 전역 임시 테이블(Global Temporary Table)의 두 가지 종류가 있으며, 생성할 때 각각 테이블 이름 앞에 #, ##을 붙여 사용합니다.
1) 로컬 임시 테이블
- 테이블 이름 앞에 #을 붙여 생성
- 생성한 사용자만 접근 가능하며, 해당 사용자의 세션에만 존재함
CREATE TABLE #tbl_temp (ID INT, ITEM_NM NVARCHAR(10));
2) 전역 임시 테이블
- 테이블 이름 앞에 ##을 붙여 생성
- 모든 사용자가 접근할 수 있는 테이블로, 생성된 후 다른 세션에서도 사용할 수 있음
CREATE TABLE ##tbl_temp (ID INT, ITEM_NM NVARCHAR(10));
임시 테이블 삭제
임시 테이블은 일정 조건에 따라 삭제됩니다.
1) SQL Server 재시작 시
- SQL Server 재시작 시 모든 임시 테이블은 자동으로 삭제됨
2) DROP TABLE 명령어 사용
DROP TABLE #tbl_temp; //로컬 임시 테이블
DROP TABLE ##tbl_temp; //전역 임시 테이블
3) 로컬 임시 테이블 삭제
- 생성자의 세션이 종료되거나 쿼리 창이 닫히면 자동으로 삭제됨
- 각 세션에서 독립적으로 관리되므로, 동일한 이름의 로컬 임시 테이블이 존재하더라도 서로 영향을 주지 않음
4) 전역 임시 테이블 삭제
- 생성자의 세션이 종료된 후에도 다른 세션에서 사용 중일 경우 삭제되지 않음
- 생성자의 세션이 종료되고 해당 테이블을 사용하는 다른 사용자가 모두 연결을 끊으면 자동으로 삭제됨