You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何向JSON数组追加多个JSON值?

解决SQL Server中JSON数组批量追加元素的问题

问题原因

你当前的@features变量是多个独立JSON对象的字符串拼接,并非合法的JSON数组。JSON_QUERY函数只会解析并返回第一个有效的JSON对象,因此只有Feature1被追加到目标数组中。

解决方案

方案1:将@features改为合法JSON数组

直接把@features定义为标准JSON数组格式,再通过JSON_MODIFY的append操作批量追加元素:

DECLARE @features NVARCHAR(500)='[{"Name": "Feature1","IsEnabled": false},{"Name": "Feature2","IsEnabled": true},{"Name": "Feature3","IsEnabled": false}]'

UPDATE JsonTable
SET Content = JSON_MODIFY(
    Content,
    'append $.Features',
    JSON_QUERY(@features)
)

方案2:动态包装现有@features为数组

如果无法修改@features的原始格式,可先将其包装为合法JSON数组再处理:

DECLARE @features NVARCHAR(500)='{"Name": "Feature1","IsEnabled": false},{"Name": "Feature2","IsEnabled": true},{"Name": "Feature3","IsEnabled": false}'
-- 拼接成合法JSON数组
SET @features = '[' + @features + ']'

UPDATE JsonTable
SET Content = JSON_MODIFY(
    Content,
    'append $.Features',
    JSON_QUERY(@features)
)

说明

使用JSON_QUERY的目的是让SQL Server将传入的字符串识别为JSON对象/数组,而非普通字符串。当传入的是JSON数组时,append操作会自动将数组内的每个元素依次追加到目标$.Features数组中,而非将整个数组作为单个元素插入。

内容的提问来源于stack exchange,提问作者Laba Ningombam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:02:43