이전 글에서 테이블 변수에 관해서 이야기했었습니다.
임시 테이블과 테이블 변수는 사용하는 방법 면에서는 별 차이가 없으나 성능상 차이가 있다고 합니다.
테이블 변수가 성능 면에서 더 유리하다고 하는데....직접 비교는 해보지 않아서 잘 모르겠습니다 ㅎㅎㅎ
(참고 : [MSSQL] 저장프로시저에서 테이블(Table) 변수 사용하기 )
선언 임시테이블이므로 크리에이트 테이블(Create Table)로 생성하면 됩니다.
--리턴값을 받기위한 임시 테이블 --Create Table [생성할 테이블 이름] ( [컬럼명] [데이터형], ... , [컬럼명] [데이터형] ) Create Table #Result ( nIndex int , sName varchar(16) , sID varchar(16))
입력은 테이블 변수와 마찬가지로 인서트(Insert)를 이용하면 됩니다.
--Insert [임시테이블] Exec [sql문] Insert #Result Exec ProcTest @nIndox , @sName , @sID
임시테이블도 일반적인 테이블처럼 사용할 수 있습니다.
Set @nTemp = (Select * From #Result)
동작은 임시 테이블이나 테이블 변수나 거의 같습니다.