Я пытаюсь создать столбец в MS-SQL 2016, который должен быть допустимым JSON, но не обязательно должен быть объектом JSON или массивом.
Я пытался использовать функцию ISJSON в качествепроверка-ограничение, когда я узнал, что это не работает, как ожидалось.В документации ничего не говорится о скалярных значениях или объектах, поэтому он должен работать для строки в кавычках, так как это допустимое значение JSON.Я пробовал с одинарными кавычками, экранированием кавычек и т. Д., Но ничего не помогает.
Использование ISJSON для скалярной строки:
SELECT ISJSON('"test"') <--- result is 0
Как ни странно, принимается следующее:
SELECT ISSJON('["test"]') <--- result is 1
Таким образом, то же скалярное значение принимается как JSON, когда помещается в массив, но не принимается само по себе.Разве Microsoft не соответствует стандарту JSON здесь?