sourcetip

SQL Server에서 임시 테이블을 작성할 때 #를 사용해야 합니까?

fileupload 2023. 4. 13. 21:05
반응형

SQL Server에서 임시 테이블을 작성할 때 #를 사용해야 합니까?

사용할 필요가 있습니까?#SQL Server에 임시 테이블을 만들기 전에?

예:

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://http://odetocode.com/articles/365.aspx

이 두 표의 차이는ItemBack1그리고.#ItemBack1첫 번째 켜짐은 영속적인(영구적인) 것이며 다른 켜짐은 일시적인 것입니다.

이제 당신의 질문을 다시 본다면

sql 서버에서 임시 테이블을 작성하려면 #를 사용해야 합니까?

정답은 '그렇다'입니다.이것이 선행되지않으면#테이블은 임시 테이블이 아니라 모든 세션 및 범위로부터 독립됩니다.

언급URL : https://stackoverflow.com/questions/16749045/is-it-necessary-to-use-for-creating-temp-tables-in-sql-server

반응형