[sql] SQL 서버에서 임시 테이블을 만들 때 #을 사용해야합니까?

#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입니다 . 이전에이 #테이블이 없으면 테이블은 임시 테이블이 아니므로 모든 세션 및 범위와 독립적입니다.


답변