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

如何通过查询结果更新列:将ResultingStrings数据同步至ContourTemp

把ResultingStrings更新到ContourTemp列的解决方案

嘿,你已经搞定了生成目标JSON字符串的查询逻辑,现在只需要把它整合到UPDATE语句里就能完成数据迁移啦!这里有两种实用的写法,你可以根据习惯选择:

方法1:用UPDATE...FROM直接赋值(SQL Server推荐写法)

这种方式最直接,把你生成ResultingStrings的子查询直接放到SET语句里,同时保留原有的关联条件确保更新正确的行:

UPDATE dc
SET dc.ContourTemp = (
    SELECT 
        JSON_QUERY('{"Ksize":9,"Treshold1":50,"Treshold2":100,"Size1":100,"Size2":250}') as CalculationParameters,
        'CalculateWithCSharp' as CalculationProvider,
        (SELECT X1, Y1, X2, Y2 FROM SimpleLines WHERE ContourId = dc.ContourId FOR JSON AUTO) AS SimpleLines
    FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
)
FROM DbContours dc
INNER JOIN [dbo].Measurements m ON dc.ContourId = m.MeasurementId;

小提示:

如果某个ContourId在SimpleLines里没有对应数据,生成的SimpleLines字段会是null。要是你想让它显示为空数组[],可以用ISNULL处理一下:

ISNULL((SELECT X1, Y1, X2, Y2 FROM SimpleLines WHERE ContourId = dc.ContourId FOR JSON AUTO), '[]') AS SimpleLines

方法2:先查再更的子查询方式

要是你更习惯先把结果查出来再关联更新,也可以这么写:

UPDATE DbContours
SET ContourTemp = rs.ResultingStrings
FROM (
    -- 这里复用你原有的查询逻辑,只保留需要的ResultingStrings和ContourId
    SELECT 
        (
            SELECT 
                JSON_QUERY('{"Ksize":9,"Treshold1":50,"Treshold2":100,"Size1":100,"Size2":250}') as CalculationParameters,
                'CalculateWithCSharp' as CalculationProvider,
                (SELECT X1, Y1, X2, Y2 FROM SimpleLines WHERE ContourId = dc.ContourId FOR JSON AUTO) AS SimpleLines
            FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
        ) AS ResultingStrings,
        dc.ContourId
    FROM DbContours dc
    INNER JOIN [dbo].Measurements ON dc.ContourId = [dbo].Measurements.MeasurementId
) rs
WHERE DbContours.ContourId = rs.ContourId;

必看注意事项

  1. 先验证再更新:执行UPDATE前,一定要先跑一遍原有的SELECT查询,确认ResultingStrings的内容完全符合预期,最好先备份一下DbContours表,避免误操作。
  2. 字段类型要匹配:确保ContourTemp是NVARCHAR(MAX)或者足够长的字符串类型,不然JSON内容可能会被截断哦。
  3. 大数据量优化:如果表里面数据很多,记得检查ContourId、MeasurementId这些关联字段有没有建索引,必要的话可以分批更新,避免锁表影响性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:52:43