Создаю базу данных с использованием таблиц с системным контролем версий. Создаю таблицу:
CREATE TABLE Manufacturer( --создаем таблицу
ManufacturerID INT NOT NULL PRIMARY KEY CLUSTERED, --код производителя
ManufacturerName VARCHAR(100) NOT NULL,--название производителя
Website VARCHAR(20) NOT NULL, --сайт производителя
SysStartTime DATETIME2 GENERATED ALWAYS AS ROW START
CONSTRAINT DF_Department_SysStartTime DEFAULT SYSUTCDATETIME() NOT NULL,
SysEndTime DATETIME2 GENERATED ALWAYS AS ROW END
CONSTRAINT DF_Department_SysEndTime
DEFAULT CONVERT( DATETIME2, '9999-12-31 23:59:59' ) NOT NULL,
PERIOD FOR SYSTEM_TIME(SysStartTime, SysEndTime)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.ManufacturerHistory));--создаем таблицу журнала
Заполняю таблицу произвольными данными.
При изменении записей таблицы в таблицу ManufacturerHistory будут помещены поля, которые отображают измененные поля и время изменения. Вот допустим при удалении записи, что видим в ManufacturerHistory:
Как мне работать с этими данными, чтобы исходя из журнала выполнять откат на определенное количество действий? Вообще возможно такое?