#
SQL 서버에서 임시 테이블을 생성하기 전에 사용해야 합니까?
예:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
ItemBack1의 경우 #
기호 를 사용해야 합니까?
그렇지 않다면 #
임시 테이블을 만드는 데 사용하는 것은 무엇 입니까?
답변
예. 임시 테이블을 만들려면 테이블 이름 앞에 “#”(해시)를 붙여야합니다.
나중에 테이블이 필요하지 않은 경우 계속해서 생성하십시오. 임시 테이블은 일반 테이블과 매우 유사합니다. 그러나 tempdb에서 생성됩니다. 또한 현재 세션을 통해서만 액세스 할 수 있습니다. 예를 들어 EG의 경우 : 다른 사용자가 사용자가 만든 임시 테이블에 액세스하려고하면 액세스 할 수 없습니다.
“##”(이중 해시는 다른 세션에서도 액세스 할 수있는 “전역”임시 테이블을 만듭니다.
임시 테이블의 기본 사항은 아래 링크를 참조하십시오.
http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
테이블 내용이 5000 행 미만이고 nvarchar (MAX), varbinary (MAX)와 같은 데이터 유형을 포함하지 않는 경우 테이블 변수 사용을 고려하십시오.
RAM에 저장되는 다른 변수와 마찬가지로 가장 빠릅니다. RAM이 아닌 tempdb에도 저장됩니다 .
DECLARE @ItemBack1 TABLE
(
column1 int,
column2 int,
someInt int,
someVarChar nvarchar(50)
);
INSERT INTO @ItemBack1
SELECT column1,
column2,
someInt,
someVarChar
FROM table2
WHERE table2.ID = 7;
테이블 변수에 대한 추가 정보 :
http://odetocode.com/articles/365.aspx
답변
이 두 테이블의 차이점 은 첫 번째 테이블 은 영구 ItemBack1
적이고 다른 테이블 #ItemBack1
은 일시적이라는 것입니다.
이제 질문을 다시 살펴보면
SQL Server에서 임시 테이블을 만들 때 #을 사용해야합니까?
대답은 Yes입니다 . 이전에이 #
테이블이 없으면 테이블은 임시 테이블이 아니므로 모든 세션 및 범위와 독립적입니다.