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
相关产品推荐
相关产品推荐

