Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
A TempDB-ben a táblák natívan lefordított tárolt eljárásokból történő létrehozása és elérése nem támogatott. Ehelyett használjon memóriaoptimalizált táblákat a DURABILITY=SCHEMA_ONLY használatával, vagy használjon táblázattípusokat és táblázatváltozókat.
További információ a temp table és a table variable forgatókönyvek memóriaoptimalizálásáról: Temp táblák és táblaváltozók gyorsítása memóriaoptimalizálás használatával.
Az alábbi példa bemutatja, hogyan helyettesíthető egy három oszlopból (ID, ProductID, Quantity) álló ideiglenes tábla használata egy dbo típusú @OrderQuantityByProduct táblaváltozóval . 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
Lásd még:
Natívan lefordított tárolt eljárások áttelepítési problémái
Transact-SQL In-Memory OLTP által nem támogatott szerkezetek