Как проанализировать JSON NVarChar (max) в SQL Server для обновления - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь как

  1. Сохранить строку JSON в ячейке таблицы
  2. Разобрать часть строки JSON и установить ее в собственную ячейку

Использование SQL Server

 create procedure json_parse_and_update
   @i int,
   @json nvarchar(max)
 as 

update testTable
set 
json_str = @json, -- Save entire JSON string to table cell
json_prop1 = json_value(my_prop,'$.nested.property'), -- Parse JSON and update a single column 
json_prop2 = json_value(my_prop2,'$.nested2.property2')
from @json
where [key] = @i;

Однако я не уверен, как выбрать свойство JSON из переменной, я вижу примеры выбора свойств JSON из таблицы.

declare @json nvarchar(max) = '{
  "nested": {
    "property1": "value",
    "property2": 0
  },
  "nested2": {
    "property1": "value",
    "property2": 0
  }
}'

Тестовая таблица похожа на

json_str | json_prop1       | json_prop_2       |
---------+------------------+-------------------+
json_str | nested_property1 | nested2_property2 |

Как мне выбрать и обновить nested.property в столбце с именем json_prop1?

1 Ответ

1 голос
/ 27 июня 2019

Что такое my_prop?Попробуйте сделать так:

json_prop1 = json_value(@json,'$.nested.property')
json_prop2 = json_value(@json,'$.nested2.property2')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...