如何在一条UPDATE语句中用JSON_MODIFY同时更新多个JSON键值对
实现方案
你可以嵌套调用JSON_MODIFY函数,该函数每次执行后会返回修改完成的JSON字符串,将其作为外层JSON_MODIFY的第一个入参,即可在同一次更新中完成多个键值对的添加/修改,全版本兼容的写法如下:
UPDATE list SET list.JsonData = JSON_MODIFY( JSON_MODIFY(list.JsonData, '$.Key1', 'Value1'), '$.Key2', 'Value2' ) FROM SomeTable list
如果你使用的是SQL Server 2022及以上版本,还可以直接用更简洁的JSON_SET函数,一次性传入多组路径和值,不需要嵌套:
UPDATE list SET list.JsonData = JSON_SET( list.JsonData, '$.Key1', 'Value1', '$.Key2', 'Value2' ) FROM SomeTable list
JSON_SET的默认行为和JSON_MODIFY一致,键不存在时新增键值对,键已存在时覆盖更新原有值,不需要额外调整业务逻辑。
内容的提问来源于stack exchange,提问作者Ole Haugset
相关产品推荐
相关产品推荐

