如何创建存储过程更新新增列?表含双主键,需按公式计算赋值
无需游标/循环:批量更新新增列的存储过程实现
- 完全不需要用游标和循环,直接用单条UPDATE语句就能完成批量赋值,这比逐行处理的游标高效得多,尤其你只有10条记录的场景,没必要搞复杂。
MySQL 存储过程示例
DELIMITER // CREATE PROCEDURE UpdateNewColumn() BEGIN -- 直接批量更新全表记录,替换成你的实际表名 UPDATE your_table_name SET new_col = quantity * price; END // DELIMITER ;
SQL Server 存储过程示例
CREATE PROCEDURE UpdateNewColumn AS BEGIN SET NOCOUNT ON; -- 批量更新,替换成你的实际表名 UPDATE your_table_name SET new_col = quantity * price; END;
补充说明
- 把代码里的
your_table_name替换成你的真实表名即可。 - 如果只需要更新特定主键组合的记录,可在UPDATE后加WHERE条件,比如:
WHERE company_no = 'C001' AND part_no = 'P001' - 哪怕后续记录数增加,这种批量更新的方式性能也远优于游标循环——数据库引擎对批量操作有原生优化,游标逐行处理不仅代码冗余,效率还低。
内容的提问来源于stack exchange,提问作者user12864747
相关产品推荐
相关产品推荐

