티스토리 뷰

DB

임시테이블 사용하기 (MS-SQL)

이안_ian 2019. 7. 17. 14:38




반응형

Temp Table

임시테이블은 말 그대로 tempdb에 임시적으로 만들어지는 table로서 특징에 따라

지역임시테이블과 전역임시테이블로 나눌 수 있습니다.

지역임시테이블은 table이 생성되는 session이 끝나면 자동으로 삭제됩니다.

 

하지만 보통 임시로 사용하려고 잠깐 생성하는 것 이기에 지역 임시 테이블로 많이 사용하고 지웁니다.

 

임시테이블을 생성하려면 table 생성시 이름 앞에 #을 추가함으로써 이 테이블이 임시테이블임을 알립니다.

#이 하나면 지역임시테이블 ##이면 전역임시테이블이 됩니다.

SELECT A.CUSTOMER_ID, A.CUSTOMER_NAME, B.SEQ_NO, B.AMOUNT
INTO #TEMP
FROM CUSTOMER A
	JOIN SALE_DATA B
		ON A.CUSTOMER_ID = B.CUSTOMER_ID

INSERT INTO CUSTOMER (CUSTOMER_ID, CUSTOMER_NAME)
VALUES('0005','이영희')

INSERT INTO SALE_DATA (CUSTOMER_ID, SEQ_NO, AMOUNT)
VALUES
('0005',1,10000)
		
UPDATE A
SET SEQ_NO = A.SEQ_NO + 1
FROM #TEMP A
	JOIN SALE_DATA B
		ON A.CUSTOMER_ID = B.CUSTOMER_ID

테이블 변수

테이블 변수는 메모리상에 일시적으로 생성되는 테이블로 쿼리가 실행되는 세션안에서만 유효하며 일반 변수와 같습니다. 또한 테이블 변수는 primary key, null, check이 세가지 제약조건만 허락하며 table변수 선언시 사용자 데이터 형식은 사용할 수 없습니다.

 

주의할 점은 table변수를 사용하려면 먼저 생성되어 있어야 한다는 것입니다.

따라서 다음과 같이 임시 테이블을 사용할 때 처럼 table변수를 생성하는건 불가능 합니다.

SELECT COM_CODE,GYE_CODE,GYE_DES
INTO @Temp2
FROM ACC002 WHERE COM_CODE='00000';
//위 코드는 불가능한 코드입니다.

 

반응형
댓글
반응형
최근에 달린 댓글
글 보관함
Total
Today
Yesterday
최근에 올라온 글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30