SSDT生成错误:预期为XML,但遇到JSON

时间:2019-03-13 01:56:58

标签: tsql visual-studio-2017 sql-server-data-tools

我正在使用最新版本的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,但据报道当时已经解决,这是否是最近的回归?我找不到此错误或类似错误的任何其他实例。

1 个答案:

答案 0 :(得分:1)

如果您将.sqlproj属性上的“目标平台”设置为SQL 2014或以下或“ Microsoft Azure SQL数据库”,则将发生这种情况,兼容性级别不会对其产生影响(或至少将我的项目设置为2014年的兼容性没有。)

这对我适用于SQL 2016+和带有SSDT“ 15.1.61902.21100”的Azure v12

希望有帮助!

编辑