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

SQL Server多条件匹配将Table1值更新到Table2字段执行无变化问题

问题原因

你编写的SQL未生效的核心原因是子查询内字段拼写错误,将itemname误写为itemaname(多了一个字母a),导致子查询无法读取到Table1的对应字段值,所有更新结果都为NULL,看起来就像字段没有发生变化。

修正方案

推荐使用SQL Server支持的UPDATE FROM关联更新写法,性能更优,也能避免子查询返回多行导致的报错问题:

-- 新增字段语句保持不变
ALTER TABLE Table2 ADD ObjectName nvarchar(50) Null;

-- 关联更新语句
UPDATE t2
SET t2.ObjectName = t1.itemname
FROM Table2 t2
INNER JOIN Table1 t1 
    ON t2.Id = t1.id 
    AND t2.TeamId = t1.teamid 
    AND t2.EmployeeId = t1.employeeid 
    AND t2.Day = t1.day;

执行效果说明

该语句只会更新两个表四个字段完全匹配的行,未匹配到的行ObjectName字段会保持NULL值,和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:15:03