Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Het maken en openen van tabellen in TempDB op basis van systeemeigen opgeslagen procedures wordt niet ondersteund. Gebruik in plaats daarvan tabellen die zijn geoptimaliseerd voor geheugen met DUURZAAMHEID=SCHEMA_ONLY of gebruik tabeltypen en tabelvariabelen.
Zie voor meer informatie over geheugenoptimalisatie van tijdelijke tabel- en tabelvariabelescenario's: Snellere tijdelijke tabel en tabelvariabele met behulp van geheugenoptimalisatie.
In het volgende voorbeeld ziet u hoe het gebruik van een tijdelijke tabel met drie kolommen (id, product-id, hoeveelheid) kan worden vervangen met behulp van een tabelvariabele @OrderQuantityByProduct van het 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
Zie ook
Migratieproblemen voor systeemeigen gecompileerde opgeslagen procedures
Transact-SQL constructies die niet worden ondersteund door In-Memory OLTP