Я пытаюсь выяснить, как изменить json, хранящийся в столбце моей таблицы (SQL SERVER).
Я хочу удалить свойство JSON, только если он соответствует заданной c строке.
Представьте, что в нашей таблице есть запись с этим JSON внутри столбца с именем "profile" (nvarchar (max)):
{
name: "goofy",
class_cod_x: "1345",
}
Затем еще одна запись представляет это JSON:
{
name: "donald",
class_cod_y: "1457",
}
Теперь мы хотим найти и обновить все JSON внутри наших записей, которое содержит свойство, которое начинается с"class_cod" ,
Я хочу удалить все свойства "class_cod .." из этого столбца.
Я могу представить запрос, подобный следующему:
UPDATE myTable SET profile = JSON_MODIFY( profile , "startsWith(class_cod)" , null)
Возможно ли это? В таком случае, какой правильный синтаксис? Заранее спасибо!
ОБНОВЛЕНИЕ Ожидаемый результат:
{
name: "goofy",
}
и
{
name: "donald",
}
Поле "class_cod" полностью удалено.
ОБНОВЛЕНИЕ 2
SQL ВЕРСИЯ СЕРВЕРА: Microsoft SQL Server 2016 (окончательная первоначальная версия) - 13.0.1601.5 (X64)
"name" и "class_cod .." не единственные возможные поля внутри столбца json. Это JSON основано на перечислении возможных конфигураций.
Возможно ли, что JSON содержит несколько полей "class_cod ..". (крайне редко, но возможно)
{
name: mario,
class_cod_10: 22,
class_cod_20: 31,
}