Skapa en minnesoptimerad systemversionsbaserad temporal tabell
gäller för: SQL Server 2016 (13.x) och senare
Azure SQL Managed Instance
På samma sätt som du skapar en diskbaserad historiktabell kan du skapa en minnesoptimerad tidstabell på flera sätt.
Om du vill skapa minnesoptimerade tabeller måste du först skapa den minnesoptimerade filgruppen.
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.
Skapa en minnesoptimerad tidstabell med standardhistoriktabell
Att skapa en temporal tabell med en standardhistoriktabell är ett praktiskt alternativ när du vill styra namngivning och fortfarande förlitar dig på att systemet skapar en historiktabell med standardkonfiguration. I följande exempel är en ny systemversionsbaserad minnesoptimerad tidstabell länkad till en ny diskbaserad historiktabell.
CREATE SCHEMA History;
GO
CREATE TABLE dbo.Department (
DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY NONCLUSTERED,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH (
MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_AND_DATA,
SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory)
);
Skapa en minnesoptimerad tidstabell med en befintlig historiktabell
Du kan skapa en temporal tabell som är länkad till en befintlig historiktabell när du vill lägga till systemversioner med hjälp av en befintlig tabell. Det här scenariot är användbart när du vill migrera en anpassad temporal lösning till inbyggt stöd. I följande exempel skapas en ny temporal tabell som är länkad till en befintlig historiktabell.
--Existing table
CREATE TABLE Department_History (
DepartmentNumber CHAR(10) NOT NULL,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 NOT NULL,
ValidTo DATETIME2 NOT NULL
);
--Temporal table
CREATE TABLE Department (
DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY NONCLUSTERED,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH (
SYSTEM_VERSIONING = ON (
HISTORY_TABLE = dbo.Department_History,
DATA_CONSISTENCY_CHECK = ON
),
MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_AND_DATA
);
Relaterat innehåll
- systemversionsbaserade tidstabeller med minnesoptimerade tabeller
- Arbeta med minnesoptimerade systemversionsbaserade tidstabeller
- Övervaka minnesoptimerade systemversionsbaserade tidstabeller
- minnesoptimerad systemversionsbaserad tidstabellprestanda
- Temporala Tabeller
- Systemkonsekvenskontroller för tidstabeller
- Hantera kvarhållning av historiska data i systemversionsbaserade tidstabeller
- vyer och funktioner för temporala tabellmetadata