You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Visual Studio SQL项目中自动生成时态表的IntelliSense报错问题

问题原因

该报错由Visual Studio SQL Server数据工具(SSDT)的语法解析规则触发:你定义的历史表名包含空格这类特殊字符,原建表语句中HISTORY_TABLE参数的对象名写法不符合SSDT的解析要求,解析到Types时无法识别它是带空格的表名的一部分,因此抛出语法错误。

解决方法

方法1:修正对象名的方括号包裹规则

将HISTORY_TABLE参数的架构名和表名全部用方括号包裹,修改原语句的最后一行即可:
原写法:

WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.[Sale Types History]));

修正后写法:

WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[Sale Types History]));

方法2:避免表名使用空格(更推荐)

直接将主表、历史表名中的空格替换为下划线,不需要处理特殊字符转义,后续查询编写也更便捷,完整语句参考:

CREATE TABLE [dbo].[Sale_Types] 
(
    [Id]         INT IDENTITY (1, 1) NOT NULL,
    [Name]       VARCHAR (MAX) 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_Sale_Types] PRIMARY KEY CLUSTERED ([Id] ASC)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[Sale_Types_History]));

方法3:升级SSDT组件

如果使用的是旧版本Visual Studio,升级对应版本的SQL Server数据工具(SSDT)到最新版,也可以修复这类时态表特殊名称的解析缺陷。

内容的提问来源于stack exchange,提问作者Mandelbrotter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:15:03