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

VS2015构建SQL Server2016项目时遇SQL46010:system_time语法错误

解决VS2015数据库项目构建时SQL46010: Incorrect syntax near system_time错误

这个问题的核心原因是Visual Studio 2015默认附带的SQL Server Data Tools (SSDT)版本不支持SQL Server 2016的时态表语法——哪怕你已经把数据库兼容级别设为130,SSDT的语法解析器还是无法识别FOR SYSTEM_TIME这类SQL 2016新增特性。下面是具体的解决步骤:

1. 升级SSDT到支持SQL Server 2016的版本

VS2015发布时,SQL Server 2016还处于预览或刚发布阶段,自带的SSDT没有对时态表等新特性做适配。你需要更新SSDT:

  • 打开Visual Studio 2015,点击顶部菜单的工具 -> 扩展和更新
  • 在左侧选择更新 -> 产品更新,找到SQL Server Data Tools的更新包并安装
  • 如果找不到对应更新,也可以下载适配VS2015的独立SSDT安装包进行手动更新

2. 确认项目目标平台设置为SQL Server 2016

即使数据库兼容级别是130,项目的目标平台如果还是旧版本(比如SQL Server 2014),SSDT依然会按旧版语法规则校验:

  • 右键你的数据库项目,选择属性
  • 在项目设置标签页,找到目标平台,选择SQL Server 2016
  • 保存设置后重新构建项目

3. 检查语法细节(可选)

虽然你在SSMS 2016中能正常运行,但SSDT的语法检查可能更严格:

  • 确保FOR SYSTEM_TIME AS OF的关键字拼写准确(SQL不区分大小写,但SSDT解析器可能对格式更敏感)
  • 确认@dt变量确实是datetime2类型,且在使用前已经正确声明和赋值

完成以上步骤后,重新构建项目,SQL46010错误应该就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:40:42