如果您使用sql Server 2017+,则可以使用JSON_MODIFY()
表达式作为路径,如文档中所述:
在sql Server 2017(14.x)和Azure sql数据库中,您可以提供一个变量作为path的值。
JSON:
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
"objs":[
{
"id":1
},
{
"id":2
}
]
}';
陈述:
SELECT @json = JSON_MODIFY(@json, CONCAT('$.objs[', [key], '].parent_id'), 1)
FROM OPENJSON(@json, '$.objs')
结果:
{
"objs":[
{
"id":1,
"parent_id":1
},
{
"id":2,
"parent_id":1
}
]
}