我目前正在學習在sql server 2016中引入的新「系統版本化時態表」。但是,我有點難以獲得我的腦海中圍繞着「GENERATED ALWAYS AS ROW START/END」和「PERIOD FOR SYSTEM_TIME」的確切含義和用法,這兩者都是系統版本化時態表所要求的。「GENERATED ALWAYS AS ROW START/END」和「PERIOD FOR SYSTEM_TIME」
有人可以請給我解釋一下嗎?預先感謝任何幫助!
CREATE TABLE dbo.Employees
(
empid INT NOT NULL CONSTRAINT PK_Employees PRIMARY KEY NONCLUSTERED,
empname VARCHAR(25) NOT NULL,
department VARCHAR(50) NOT NULL,
salary NUMERIC(10, 2) NOT NULL,
sysstart DATETIME2(0) GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
sysend DATETIME2(0) GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(sysstart, sysend),
INDEX ix_Employees CLUSTERED(empid, sysstart, sysend)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.EmployeesHistory)
);