我正在使用最新版本的Visual Studio Professional 2017(v15.9.9)和最新的SQL Server数据工具(v15.1.61903.01040)
例如,我使用以下代码在数据库项目中创建一个新的存储过程:
create proc [dbo].[MyProc] as
select 'Test' as [TestColumn] FOR JSON AUTO
它不会与以下错误一起编译,并且关键字JSON
被突出显示:
SQL46005: Expected XML but encountered JSON instead
SQL80001: Incorrect syntax near 'JSON'
当它完全有效的SQL时,它无法编译似乎很奇怪(或者我弄错了?我缺少什么了?还是真的不支持?)
这个问题似乎exist for older versions of SSDT before 2016,但据报道当时已经解决,这是否是最近的回归?我找不到此错误或类似错误的任何其他实例。
答案 0 :(得分:1)
如果您将.sqlproj属性上的“目标平台”设置为SQL 2014或以下或“ Microsoft Azure SQL数据库”,则将发生这种情况,兼容性级别不会对其产生影响(或至少将我的项目设置为2014年的兼容性没有。)
这对我适用于SQL 2016+和带有SSDT“ 15.1.61902.21100”的Azure v12
希望有帮助!
编辑