從預存程序建立及存取 TempDB 中的資料表
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
不支援從原生編譯預存程序建立及存取 TempDB 中的資料表。 請改用 DURABILITY=SCHEMA_ONLY 的記憶體最佳化資料表,或改用資料表類型和資料表變數。
如需暫存資料表記憶體最佳化及資料表變數案例的詳細資訊,請參閱:使用記憶體最佳化加快暫存資料表與資料表變數的速度。
下列範例示範如何使用 dbo.OrderQuantityByProduct 類型的 @OrderQuantityByProduct 資料表變數來取代暫存資料表 (其具有 ID、ProductID、Quantity 這三個資料行):
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