본문 바로가기

데이터베이스/MSSQL

SQL Server, MS-SQL / SELECT INTO 문으로 임시 테이블 생성

원래는 테이블 CREAT, 내용을 INSERT 하고, SELECT 하는 것이 순서이지만

급한 경우, SELECT 문에 INTO를 넣어 결과를 저장하여 조회하는 방법을 사용하기도 한다.

 

크게 두 가지 방법이 있다.

 

1) #(테이블명) - 임시테이블 만들기

2) (테이블명) - 물리적인 테이블 만들기


SELECT [컬럼1], [컬럼2] ... 
INTO [#임시 테이블명]
FROM [데이터를 가져올 테이블명]

1) #(테이블명) - 임시테이블 만들기

아래 사진과 같이 INTO 구문에 #(테이블명)으로 임시테이블을 생성한다.

한 세션 내에서만 사용 가능한 임시테이블을 '지역 임시테이블(Local Temporary Table)'이라고 부른다.

지역 임시 테이블(Local Temporary Table)은 한 세션 내에서만 사용가능하다.

다른 세션에서 조회해보면 조회가 되지 않는다.

 

SQL Server 에서 세션이란 상단에 탭처럼 보이는 것이 각 세션이다.

위 사진에서 사용하고 있는 세션이 노란부분으로 구분되어 색상이 표시되고 있다.

 

한 세션 내에서 (위 사진에서 사용한 SELECT INTO 구문) 동일한 구문을 그대로 실행 시 오류가 발생한다.

그런 경우

DROP TABLE #(임시테이블명)

SELECT INTO(임시테이블명)

 

DROP 구문을 날려준 뒤 실행하면 된다.


2) (테이블명) - 물리적인 테이블 만들기

테이블 생성된 모습

반면에 물리적인 테이블을 만들 경우, 다른 세션에서도 조회가 가능하다

 

이 테이블은 한번 조회하고 말 내용이 아니라 계속해서 확인할 용도일 때 생성한다.

또는 데이터의 내용이 임시테이블의 용량을 초과할 때.


▶ 참고

MS-SQL 임시테이블과 관련하여 잘 정리해주신 분의 글 

 

 

[MsSQL]임시 테이블의 종류

MsSQL에서 사용 가능한 임시 테이블(Temporary Tables) 종류에 대해 포스팅합니다. 임시 테이블(Temporary Tables)이란? 임시 테이블은 말 그대로 임시로 사용되는 테이블이며, SELECT, UPDATE, INSERT, DELETE와 JOIN

developer-talk.tistory.com