Sql server SQL SERVER 16生成了不正确的语法

Sql server SQL SERVER 16生成了不正确的语法,sql-server,sql-server-2014,Sql Server,Sql Server 2014,大家好,所以我尝试了几种不同的变体来在MS SQL SERVER 2016中创建时间表。 但是,他们都没有解决我的问题,即错误消息: Msg 102,15级,状态1,第99行附近语法不正确 “已生成”。消息319,级别15,状态1,第104行不正确 关键字“with”附近的语法。如果此语句是公共表 表达式、xmlnamespaces子句或更改跟踪上下文 子句中,前面的语句必须以 分号。消息319,级别15,状态1,第106行不正确 关键字“with”附近的语法。如果此语句是公共表 表达式、

大家好,所以我尝试了几种不同的变体来在MS SQL SERVER 2016中创建时间表。

但是,他们都没有解决我的问题,即错误消息:

Msg 102,15级,状态1,第99行
附近语法不正确 “已生成”。
消息319,级别15,状态1,第104行
不正确 关键字“with”附近的语法。如果此语句是公共表 表达式、xmlnamespaces子句或更改跟踪上下文 子句中,前面的语句必须以 分号。
消息319,级别15,状态1,第106行
不正确 关键字“with”附近的语法。如果此语句是公共表 表达式、xmlnamespaces子句或更改跟踪上下文 子句中,前面的语句必须以分号结尾

还是上来了

CREATE TABLE [dbo].[Report-New-History](
[ReportId] [int] NOT NULL,
[Code] [varchar](10) NOT NULL,
[Name] [varchar](255) NOT NULL,
[SysStartTime] [DATETIME2] NOT NULL,
[SysEndTime] [DATETIME2] NOT NULL,
);
GO

CREATE CLUSTERED COLUMNSTORE INDEX IX_ReportHistory
    ON [Report-New-History];
CREATE NONCLUSTERED INDEX IX_ReportNew_History_ID_PERIOD_COLUMNS
    ON [Report-New-History] (SysEndTime, SysStartTime, ReportId);
GO

CREATE TABLE [Report-New]
(
    [ReportId] [int] NOT NULL,
    [Code] [varchar](10) NOT NULL,
    [PreviousCode] [varchar](10) NULL,
    [Name] [varchar](255) NOT NULL,
    SysStartTime DATETIME2 GENERATED ALWAYS AS ROW START NOT NULL,  
    SysEndTime DATETIME2 GENERATED ALWAYS AS ROW END NOT NULL,     
    PERIOD FOR SYSTEM_TIME (SysStartTime,SysEndTime),
    CONSTRAINT PK_Report
        PRIMARY KEY CLUSTERED ([ReportId] ASC) 
        WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)  
) ON [PRIMARY]
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.[Report-New-History]));
这就是我现在拥有的,但它也不起作用


关于如何使其工作,有什么建议吗?

我无法在SQL Server 2017上复制该特定错误;我得到了一个完全不同的错误。问一个愚蠢的问题,您是否确实在使用SQL Server 2016?您没有将SSMS 2016误认为是SQL Server 2016,是吗..?您的历史记录表中有额外的列。允许吗?“我不相信是这样。事实并非如此,@SeanBrookins(为什么我会得到一个完全不同的错误)。OP出现错误的事实表明,他们使用的SQL Server版本(或兼容级别)不支持时态表。为了节省滚动时间,我从第二次创建中删除了列。他们都在那里。对不起,我是说SSMS我“打错了”/“打错了”这是一个很好的观点,拉努。如果贝萨里奥不确定,他应该检查他所连接的实例的服务器版本。抢手货