본문 바로가기
데이터베이스/MSSQL

테이블 변수의 장점과 사용하기

by 브래드.권 2009. 1. 16.



mssql 2000 부터 table 이라는 변수가 생겼는데요. 이게 바로 테이블 변수입니다.
테이블 변수가 뭐냐? 즉.. 테이블을 변수처럼 사용하는 것이겠죠 ㅡㅡ;; 결과 집합을 이 테이블 변수에 저장할 수 있습니다.
널리 사용되고 있는 임시테이블과 비슷하지만, 임시 테이블에 비해 몇가지 장점이 있고 또 이때문에 여러 서적이나 관련 사이트에서는 테이블 변수의 사용이 권장되고 있다고 합니다.

아래는 SQL Server BOL(Books On-Line) 에 적힌 테이블 변수의 장점입니다.


 

가능할 때마다 테이블 변수를 임시 테이블 대신 사용하십시오. table 변수는 다음과 같은 편의를 제공합니다.

* table 변수는 지역 변수처럼 작동합니다. table 변수는 함수, 저장 프로시저 또는 일괄 처리 등 제대로 정의된 범위를 가지며 그 안에서 table 변수가 선언됩니다.

이 범위에서 table 변수는 일반 테이블처럼 사용할 수 있으며, SELECT, INSERT, UPDATE 및 DELETE 문에서 테이블 또는 테이블 식이 사용되는 어디에나 적용할 수 있습니다. 단, table은 다음 명령문에서는 사용할 수 없습니다.

INSERT INTO table_variable EXEC stored_procedure
SELECT select_list INTO table_variable 문

* table 변수는 table 변수가 저장된 함수, 저장 프로시저 및 일괄 처리가 끝나면 자동으로 정리됩니다.

* 저장 프로시저에 테이블 변수를 사용하면 임시 테이블을 사용할 때보다 저장 프로시저를 다시 컴파일 하는 일이 줄어듭니다.

* 테이블 변수와 관련된 트랜잭션은 테이블 변수가 업데이트되는 동안만 지속됩니다. 따라서 테이블 변수를 사용하면 리소스의 잠금과 로깅에 대한 요구가 줄어듭니다.

* 테이블 변수간의 할당 작업은 지원되지 않습니다. 또한 테이블 변수는 범위가 제한되며 영구 데이터베이스의 일부가 아니므로 트랜잭션 롤백의 영향을 받지 않습니다.




사용하는 방법은 다음과 같습니다.