DataBase/MsSQL

[MsSQL]임시 테이블의 종류

DevStory 2021. 6. 27.

MsSQL에서 사용 가능한 임시 테이블(Temporary Tables) 종류에 대해 포스팅합니다.

 

임시 테이블(Temporary Tables)이란?

임시 테이블은 말 그대로 임시로 사용되는 테이블이며, SELECT, UPDATE, INSERT, DELETE와 JOIN 기능을 사용할 수 있습니다.

임시 테이블은 종류에 따라서 제약조건과 삭제되는 경우가 다릅니다.

대표적인 예시로 테이블 변수는 기본 키 설정이 가능하지만, 로컬 임시 테이블과 전역 임시 테이블은 기본 키 설정이 불가능합니다.

그리고 대부분의 임시 테이블은 연결된 세션이 종료되면 삭제되지만, tempdb에서 직접 테이블을 생성했을 경우에는 서버를 재시작해야 삭제됩니다.


MsSQL에서 임시 테이블 종류

1. 테이블 변수(Table variables)

테이블 변수는 함수, 프로시저, 배치 내부에서 사용 가능합니다.

함수, 프로시저, 배치 외부에서는 접근 불가능하며, 수동으로 삭제 불가능합니다.

함수, 프로시저, 배치가 종료되면 테이블 변수도 삭제됩니다.

DECLARE @TEMP_TABLE TABLE

 

2. 지역 임시 테이블(Local Temporary Table)

지역 임시 테이블은 지역 임시 테이블을 생성한 연결된 세션에서만 사용 가능합니다.

프로시저에서 사용했을 경우 프로시저가 종료되면, 지역 임시 테이블도 삭제됩니다.

세션이 종료되었을 경우에도 삭제됩니다.

CREATE TABLE #TEMP_TABLE

 

3. 전역 임시 테이블(Global Temporary Table)

전역 임시 테이블은 모든 세션에서 사용 가능합니다.

전역 임시 테이블을 참조하는 세션이 전부 종료되었을 경우 전역 임시 테이블이 삭제됩니다.

공유 가능하므로 교착상태를 주의해야 합니다.

CREATE TABLE ##TEMP_TABLE

 

4. Tempdb 영구 테이블

tempdb 시스템 데이터베이스에 테이블을 생성합니다.

생성된 테이블은 모든 세션에서 사용 가능합니다.

서버가 다시 시작되면, 테이블이 삭제됩니다.

아래는 tempdb 시스템 데이터베이스에서 테이블 생성 ~ 삭제 과정입니다.

 

4-1. 테이블 생성

 

4-2. TEMP_TABLE로 테이블 생성

 

4-3. TEMP_TABLE 테이블 생성 확인

 

4-4. MsSQL 서버 다시 시작

 

4-5. 새로고침 후 테이블 확인 결과 자동으로 삭제되었음 확인


참고

https://stackoverflow.com/questions/2920836/local-and-global-temporary-tables-in-sql-server

 

 

반응형

'DataBase > MsSQL' 카테고리의 다른 글

[MSSQL]SET NOCOUNT ON  (0) 2020.10.14

댓글