OPENJSON не работает в SQL Server?

Я хочу использовать функции JSON в SQL Server 2016, но когда я пытаюсь выполнить функцию OPENJSON, я получаю следующую ошибку:

Msg 208, уровень 16, состояние 1, строка 1
Недействительное имя объекта 'openjson'.

Почему не работает? У меня есть версия SQL Server 2016 RC.


person Iva    schedule 07.04.2016    source источник
comment
Можете выложить все SQL?   -  person Mike Miller    schedule 07.04.2016
comment
также выберите @@ информация о версии поможет   -  person TheGameiswar    schedule 07.04.2016


Ответы (1)


Не могли бы вы проверить уровень совместимости в базе данных? OPENJSON доступен на уровне совместимости 130. Не могли бы вы попробовать выполнить:

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 130

Кроме того, если вы используете JSON в базе данных SQL Azure, обратите внимание, что даже новые базы данных создаются с уровнем совместимости 120, поэтому вам следует изменить его, если вы хотите использовать OPENJSON. Кроме того, если вы используете его в базе данных SQL Azure, запустите select @@ version, чтобы узнать, является ли этот сервер V12. Вы должны увидеть что-то вроде:

Microsoft SQL Azure (RTM) - 12.0.2000.8 25 марта 2016 15:11:30 Авторские права (c) Microsoft Corporation

Если вы видите более раннюю версию (например, 11.xxx), вероятно, у вас есть база данных на старой архитектуре, где JSON не поддерживается.

С уважением,

Йован

person Jovan MSFT    schedule 07.04.2016
comment
Спасибо, Джован, это связано с уровнем совместимости. Работает со 130. - person Iva; 07.04.2016
comment
Теперь моя ошибка верна. Значения уровня совместимости базы данных - 90, 100 или 110. - person Durgesh Pandey; 28.09.2017
comment
Вы говорите о базе данных Azure SQL или какой-либо версии SQL Server? Для Azure SQL должны быть доступны все уровни совместимости. - person Jovan MSFT; 29.09.2017
comment
Для получения дополнительной информации прочтите: asptricks.net/ 07.07.2017 / недопустимое-имя-объекта-openjson-in-sql.html - person Jacob van Lingen; 21.02.2018
comment
@DurgeshPandey Если вы запустите SELECT @@VERSION, вы увидите, что работаете с SQL Server 2012 (уровень совместимости 110), поэтому это сообщение об ошибке сообщает вам, что вы не можете перейти на уровень совместимости для более новой версии SQL Server, чем та, что у вас есть. , т.е. SQL Server 2016 (уровень совместимости 130). - person Davos; 06.03.2018
comment
У меня возникла ошибка. Допустимые значения уровня совместимости базы данных - 100, 110 или 120, и у меня есть ssms 2018. - person rinku Choudhary; 23.07.2019