저장 프로시저에서 TempDB에 테이블 만들기 및 액세스Create and Access Tables in TempDB from Stored Procedures

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

고유하게 컴파일된 저장 프로시저의 TempDB에서 테이블을 만들거나 액세스하는 것은 지원되지 않습니다.Creating and accessing tables in TempDB from natively compiled stored procedures is not supported. 대신, DURABILITY=SCHEMA_ONLY인 메모리 최적화 테이블을 사용하거나 테이블 형식 및 테이블 변수를 사용합니다.Instead, use either memory-optimized tables with DURABILITY=SCHEMA_ONLY or use table types and table variables.

임시 테이블 및 테이블 변수 시나리오의 메모리 최적화에 대한 자세한 내용은 메모리 최적화를 사용하여 임시 테이블 및 테이블 변수 성능 향상을 참조하세요.For more details about memory-optimization of temp table and table variable scenarios see: Faster temp table and table variable by using memory optimization.

다음 예제에서는 세 개의 열(id, ProductID, Quantity)로 임시 테이블 사용을 @OrderQuantityByProduct 형식의 @OrderQuantityByProduct테이블 변수를 사용하여 변경할 수 있는 방법을 보여 줍니다.The following example shows how the use of a temp table with three columns (id, ProductID, Quantity) can be replaced using a table variable @OrderQuantityByProduct of type dbo.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  

참고 항목See Also

고유하게 컴파일된 저장 프로시저의 마이그레이션 문제 Migration Issues for Natively Compiled Stored Procedures
메모리 내 OLTP에서 지원되지 않는 Transact-SQL 구문Transact-SQL Constructs Not Supported by In-Memory OLTP