Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2016 (13.x) och senare
Azure SQL Managed Instance
I den här artikeln beskrivs hur arbetet med en minnesoptimerad systemversionstabell skiljer sig från att arbeta med en diskbaserad systemversionsbaserad temporal tabell.
Obs
Minnesoptimerade temporala tabeller är endast tillgängliga i SQL Server och Azure SQL Managed Instance. Minnesoptimerade tabeller och temporala tabeller är oberoende tillgängliga i Azure SQL Database.
Upptäck metadata
Om du vill upptäcka metadata om en minnesoptimerad systemversionerad temporala tabell måste du kombinera information från sys.tables och sys.internal_tables. En systemversionerad temporal tabell visas som huvudobjekt-ID av den interna minneshistoriktabellen
Det här exemplet visar hur du frågar efter och ansluter till dessa tabeller.
SELECT SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
OBJECT_NAME(IT.parent_object_id) AS TemporalTableName,
T1.object_id AS TemporalTableObjectId,
IT.Name AS InternalHistoryStagingName,
SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema,
OBJECT_NAME(T1.history_table_id) AS HistoryTableName
FROM sys.internal_tables IT
INNER JOIN sys.tables T1
ON IT.parent_object_id = T1.object_id
INNER JOIN sys.tables T2
ON T1.history_table_id = T2.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2;
Ändra data
Minnesoptimerade tidstabeller kan ändras genom inbyggda kompilerade lagrade procedurer, vilket gör att du kan konvertera icke-temporala minnesoptimerade tabeller och behålla befintliga inbyggda lagrade procedurer.
I det här exemplet kan du ändra tabellen som skapades tidigare i den inbyggda kompilerade modulen.
CREATE PROCEDURE dbo.UpdateFXCurrencyPair (
@ProviderID INT,
@CurrencyID1 INT,
@CurrencyID2 INT,
@BidRate DECIMAL(8, 4),
@AskRate DECIMAL(8, 4)
)
WITH NATIVE_COMPILATION, SCHEMABINDING,
EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH (
TRANSACTION ISOLATION LEVEL = SNAPSHOT,
LANGUAGE = N'English'
)
UPDATE dbo.FXCurrencyPairs
SET AskRate = @AskRate,
BidRate = @BidRate
WHERE ProviderID = @ProviderID
AND CurrencyID1 = @CurrencyID1
AND CurrencyID2 = @CurrencyID2
END
GO;
Relaterat innehåll
- systemversionsbaserade tidstabeller med minnesoptimerade tabeller
- Skapa en minnesoptimerad systemversionsbaserad tidstabell
- Övervaka minnesoptimerade systemversionsbaserade tidstabeller
- Minnesoptimerad prestanda för systemversionsbaserade tidsangivna tabeller
- temporala tabeller
- Systemkonsekvenskontroller för tidstabeller
- Hantera kvarhållning av historiska data i systemversionsbaserade tidstabeller
- vyer och funktioner för temporala tabellmetadata