Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Membuat dan mengakses tabel di TempDB dari prosedur tersimpan yang dikompilasi secara asli tidak didukung. Sebagai gantinya, gunakan tabel yang dioptimalkan memori dengan DURABILITY=SCHEMA_ONLY atau gunakan jenis tabel dan variabel tabel.
Untuk informasi selengkapnya tentang pengoptimalan memori skenario tabel sementara dan variabel tabel, lihat: Tabel sementara dan variabel tabel yang lebih cepat dengan menggunakan pengoptimalan memori.
Contoh berikut menunjukkan bagaimana penggunaan tabel sementara dengan tiga kolom (ID, ProductID, Kuantitas) dapat diganti menggunakan variabel tabel @OrderQuantityByProduct jenis 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
Lihat Juga
Masalah Migrasi untuk Prosedur Tersimpan yang Dikompilasi Secara Asli
Konstruksi Transact-SQL Tidak Didukung oleh OLTP Dalam Memori