2016-04-07 2 views
18

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

Msg 208, Level 16, State 1, Line 1
Invalid object name 'openjson'.

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

+1

Вы можете разместить все SQL? –

+1

также выберите @@ version info поможет – TheGameiswar

ответ

55

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

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 130 

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

Microsoft SQL Azure (RTM) - 12.0.2000.8 Mar 25 2016 15:11:30 Copyright (c) Microsoft Corporation

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

С уважением,

Йован

+0

Спасибо Jovan, это было связано с уровнем совместимости. Он работает с 130. – Iva

+0

Теперь моя ошибка: «Допустимые значения уровня совместимости базы данных - 90, 100 или 110». –

+0

Вы говорите о базе данных Azure SQL или некоторой версии SQL Server? Azure SQL должен иметь все уровни совместимости. –