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

SQL Server无标识键JSON数组指定元素更新方法求教

SQL Server JSON数组字段更新解决方案

失败原因

更新操作未生效的核心原因是JSON_MODIFY函数的JSON路径语法错误:访问JSON数组指定索引的元素时,无需在根节点标识$和索引符号[之间添加多余的点号,你原来写的$.[0].CarTd属于非法路径格式。

修正后的可运行代码

DECLARE @CarJaosn VARCHAR(MAX) = 
 '[
    {
        "CarTd": 1208,
        "HoldReasonEnum":2, 
        "Attachment": "",
        "FromDate":"2021-08-18",
        "ToDate":"2021-08-18"
    }
 ]'

-- 修正路径后的更新语句
SET @CarJaosn = JSON_MODIFY(@CarJaosn, '$[0].CarTd', 5);

-- 可选:执行后验证修改结果
SELECT 
    @CarJaosn AS FullUpdatedJson,
    JSON_VALUE(@CarJaosn, '$[0].CarTd') AS ModifiedCarTdValue

其他注意事项

  • 该JSON函数仅支持SQL Server 2016及以上版本、Azure SQL数据库,低于该版本的SQL Server实例无法使用相关语法
  • 如果你不确定数组索引是否匹配目标元素,可以先通过JSON_VALUE(@CarJaosn, '$[0].CarTd')查询对应位置的字段值,确认路径正确后再执行更新
  • 原变量声明中Attachment字段的空值如果用单引号表示,需要转义写为两个单引号'',直接用双引号写空字符串可以避免转义问题

内容的提问来源于stack exchange,提问作者Chamin Thilakarathne

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:30:01