Megosztás a következőn keresztül:


Memóriaoptimalizált rendszerverziójú temporális táblázat létrehozása

A következőkre vonatkozik: Sql Server 2016 (13.x) és újabb verziók felügyelt Azure SQL-példány

A lemezalapú előzménytáblák létrehozásához hasonlóan több módon is létrehozhat memóriaoptimalizált időbeli táblázatot.

Memóriaoptimalizált táblák létrehozásához először létre kell hoznia a memóriaoptimalizált fájlcsoportot.

Jegyzet

A memóriaoptimalizált időtáblák csak az SQL Serverben és az Azure SQL Managed Instance-ben érhetők el. A memóriaoptimalizált táblák és az időtáblák egymástól függetlenül érhetők el az Azure SQL Database-ben.

Memóriaoptimalizált időbeli táblázat létrehozása alapértelmezett előzménytáblával

Az ideiglenes tábla alapértelmezett előzménytáblával való létrehozása kényelmes megoldás, ha szabályozni szeretné az elnevezést, és a rendszer továbbra is az alapértelmezett konfigurációval rendelkező előzménytáblák létrehozására támaszkodik. A következő példában egy új, lemezalapú előzménytáblához kapcsolódó rendszerverziózott, memóriaoptimalizált temporális tábla szerepel.

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)
);

Memóriaoptimalizált időbeli tábla létrehozása meglévő előzménytáblával

Ha rendszerverziósítást szeretne hozzáadni egy meglévő táblával, létrehozhat egy időtáblát, amely kapcsolódik egy meglévő előzménytáblához. Ez a forgatókönyv akkor hasznos, ha egyéni ideiglenes megoldást szeretne áttelepíteni a beépített támogatásba. Az alábbi példában egy új időbeli tábla jön létre egy meglévő előzménytáblához csatolva.

--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
);