저장 프로시저에서 TempDB에서 테이블 만들기 및 액세스

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

고유하게 컴파일된 저장 프로시저에서 TempDB에서 테이블을 만들고 액세스하는 것은 지원되지 않습니다. 대신 DURABILITY=SCHEMA_ONLY 메모리 최적화 테이블을 사용하거나 테이블 형식 및 테이블 변수를 사용합니다.

임시 테이블 및 테이블 변수 시나리오의 메모리 최적화에 대한 자세한 내용은 메모리 최적화를 사용하여 더 빠른 임시 테이블 및 테이블 변수를 참조하세요.

다음 예제에서는 dbo 형식의 테이블 변수 @OrderQuantityByProduct 사용하여 세 개의 열(ID, ProductID, Quantity)이 있는 임시 테이블을 사용하는 방법을 보여 줍니다. OrderQuantityByProduct:

CREATE TYPE dbo.OrderQuantityByProduct   
  AS TABLE   
   (id INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=100000),   
    ProductID INT NOT NULL,   
    Quantity INT NOT NULL) WITH (MEMORY_OPTIMIZED=ON)  
GO  
CREATE PROCEDURE dbo.usp_OrderQuantityByProduct   
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER  
AS BEGIN ATOMIC WITH   
(  
    TRANSACTION ISOLATION LEVEL = SNAPSHOT,  
    LANGUAGE = N'ENGLISH'  
)  
  -- declare table variables for the list of orders   
  DECLARE @OrderQuantityByProduct dbo.OrderQuantityByProduct  
  
  -- populate input  
  INSERT @OrderQuantityByProduct SELECT ProductID, Quantity FROM dbo.[Order Details]  
  end  

참고 항목

고유하게 컴파일된 저장 프로시저에 대한 마이그레이션 문제
메모리 내 OLTP에서 지원되지 않는 Transact-SQL 구문