0

我正在尝试对数据库中的现有表启用系统版本控制。但是,我编写的代码不起作用。我正在使用 SQL Server 2016。

我得到的错误是

GENERATED(第 4 行)附近的语法不正确

另一个错误是

'SYSTEM_VERSIONING' 附近的语法不正确(第 9 行)

有人可以帮我解决我做错了什么吗?

USE Evergreen;
GO

ALTER TABLE dbo.tblApplication 
    ADD [TimeStart] DATETIME2 
            GENERATED ALWAYS AS ROW START NOT NULL 
            CONSTRAINT DFT_tblApplication_TimeStart DEFAULT GETDATE(),
        [TimeEnd] DATETIME2 
            GENERATED ALWAYS AS ROW END NOT NULL 
            CONSTRAINT DFT_tblApplication_TimeEnd DEFAULT CONVERT(DATETIME2, '9999-12-31 23:59:59.9999999'),
        PERIOD FOR SYSTEM_TIME ([TimeStart], [TimeEnd]);

ALTER TABLE dbo.tblApplication
    DROP CONSTRAINT DFT_tblApplication_TimeStart, DFT_tblApplication_TimeEnd;

ALTER TABLE dbo.tblApplication 
    SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.tblApplication_History));
4

1 回答 1

1

没关系,我有 SQL Server 2014。这就是它不起作用的原因。

于 2019-09-06T21:26:47.940 回答