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

如何在T-SQL中用单条UPDATE语句为新增列设置不同值?

单条UPDATE语句批量设置不同员工的AGE值

完全可以通过单条UPDATE语句实现批量设置不同员工的年龄,核心思路是构造员工ID与对应年龄的映射关系,再通过JOIN关联原表完成更新。以下是两种实用的实现方式:

方法1:直接用VALUES子句构造映射数据

适合员工数量不多的场景,直接在语句中列出每个员工的ID和对应年龄:

UPDATE e
SET e.AGE = map.EmployeeAge
FROM employees e
INNER JOIN (
    VALUES
        (1, 32),   -- 员工ID=1,年龄设为32
        (2, 28),   -- 员工ID=2,年龄设为28
        (3, 45),   -- 员工ID=3,年龄设为45
        -- 按需继续添加其他员工的ID和年龄
        (10, 30)
) AS map(EmployeeID, EmployeeAge)
ON e.EmployeeID = map.EmployeeID;

方法2:用临时表/表变量存储映射数据

如果员工数量较多,先把ID和年龄的对应关系存入临时表或表变量,再关联更新:

-- 创建表变量并插入年龄映射数据
DECLARE @EmployeeAges TABLE (EmployeeID INT, EmployeeAge INT);
INSERT INTO @EmployeeAges (EmployeeID, EmployeeAge)
VALUES
    (1, 32),
    (2, 28),
    (3, 45),
    -- 补充更多员工数据
    (10, 30);

-- 关联更新原表的AGE列
UPDATE e
SET e.AGE = ea.EmployeeAge
FROM employees e
INNER JOIN @EmployeeAges ea ON e.EmployeeID = ea.EmployeeID;

关键注意点

  • 确保EmployeeID是employees表的主键或唯一键,避免一条记录被多次更新导致结果异常。
  • 映射数据中的EmployeeID必须和原表的ID完全匹配,否则对应员工的AGE列不会被更新。

内容的提问来源于stack exchange,提问作者Shivam Maurya 1729

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:22:32