Ошибка SSDT при сборке: ожидался XML, но вместо этого столкнулся с JSON

#tsql #visual-studio-2017 #sql-server-data-tools

#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 (или я ошибаюсь? Я чего-то не понимаю? Или это действительно не поддерживается?)

Эта проблема, по-видимому, существовала для более старых версий SSDT до 2016 года, но тогда сообщалось, что она решена, возможно, это недавний регресс? Я не могу найти никаких других случаев этой ошибки или чего-либо подобного.

Комментарии:

1. Вы могли бы проверить уровень совместимости вашей целевой базы данных…

Ответ №1:

Если у вас в свойствах «Target Platform» .sqlproj установлено значение SQL 2014 или меньше или «База данных Microsoft Azure SQL», то это произойдет, уровень совместимости на это не влияет (или, по крайней мере, настройка моего проекта на совместимость с 2014 не повлияла).

У меня это работает с SQL 2016 и Azure v12 с SSDT «15.1.61902.21100»

Надеюсь, это поможет!

изд

Комментарии:

1. Как я мог быть настолько слеп?! Конечно, в этом причина — спасибо!