• It is possible to add a new column, to modify a column and drop a column, while system_versioning is ON!!!

    USE master;

    GO

    DROP DATABASE IF EXISTS TemporalDB;

    GO

    CREATE DATABASE TemporalDB;

    GO

    USE TemporalDB;

    GO

    CREATE TABLE dbo.Person

    (

    Personid INT NOT NULL IDENTITY PRIMARY KEY,

    Firstname VARCHAR(20) NOT NULL,

    Lastname VARCHAR(20) NULL,

    Adress VARCHAR(30) NOT NULL,

    Zipcode SMALLINT NOT NULL,

    SysStartTime DATETIME2(0) GENERATED ALWAYS AS ROW START NOT NULL,

    SysEndTime DATETIME2(0) GENERATED ALWAYS AS ROW END NOT NULL,

    PERIOD FOR SYSTEM_TIME (SysStartTime,SysEndTime)

    )

    WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.PersonHistory));

    GO

    ALTER TABLE dbo.Person

    ADD Tlfno VARCHAR(8) NULL;

    GO

    SELECT *

    FROM sys.columns

    WHERE object_id IN(OBJECT_ID('dbo.Person'), OBJECT_ID('dbo.PersonHistory'))

    ORDER BY object_id;

    GO

    ALTER TABLE dbo.Person

    ALTER COLUMN Tlfno CHAR(10) NULL;

    GO

    SELECT *

    FROM sys.columns

    WHERE object_id IN(OBJECT_ID('dbo.Person'), OBJECT_ID('dbo.PersonHistory'))

    ORDER BY object_id;

    GO

    ALTER TABLE dbo.Person

    DROP COLUMN Tlfno;

    GO

    SELECT *

    FROM sys.columns

    WHERE object_id IN(OBJECT_ID('dbo.Person'), OBJECT_ID('dbo.PersonHistory'))

    ORDER BY object_id;