Aracılığıyla paylaş


Saklı Yordamlardan TempDB'de Tablo Oluşturma ve Tablolara Erişme

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

TempDB'de yerel olarak derlenmiş saklı yordamlardan tablo oluşturma ve bunlara erişme desteklenmez. Bunun yerine, DAYANıKLıLıK=SCHEMA_ONLY ile bellek için iyileştirilmiş tabloları veya tablo türlerini ve tablo değişkenlerini kullanın.

Geçici tablo ve tablo değişkeni senaryolarının bellek iyileştirmesi hakkında daha fazla bilgi için bkz. Bellek iyileştirmesini kullanarak daha hızlı geçici tablo ve tablo değişkeni.

Aşağıdaki örnekte, üç sütunlu geçici tablo (ID, ProductID, Quantity) kullanımının dbo türünde bir tablo değişkeni @OrderQuantityByProduct kullanılarak nasıl değiştirilebileceği gösterilmektedir . 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  

Ayrıca Bkz.

Yerel Olarak Derlenmiş Saklı Yordamlar için Geçiş Sorunları
In-Memory OLTP Tarafından DesteklenmeyenTransact-SQL Yapıları