通过一张表批量更新另外一张表中一一对应的数据

 

UPDATE Table1 SET Table1.NumA = Table1.NumA + Table2.NumB FROM Table2 WHERE Table2.ID=Table1.ID

 

该语句实现一一对应的批量更新,通过Table2中的NumB更新Table1中的NumA,使Table1中的NumA累加。

转载于:https://www.cnblogs.com/breezekey/archive/2010/08/09/1795855.html

### SQL 查询结果插入到另一张的方法 在 SQL 中,可以使用 `INSERT INTO ... SELECT` 的语法将查询结果插入到另一张中。以下是具体实现方式: #### 1. 字段完全匹配的情况 如果源和目标的字段数量以及顺序都完全一致,则可以直接执行以下语句: ```sql INSERT INTO target_table SELECT * FROM source_table WHERE condition; ``` 这种情况下需要注意的是,两个的结构必须严格对应[^3]。 #### 2. 部分字段匹配的情况 当只需要插入部分字段或者字段名称不同时,可以通过显式指定列名来完成操作: ```sql INSERT INTO target_table (col1, col2, col3) SELECT column_a, column_b, column_c FROM source_table WHERE condition; ``` 这里的目标字段列 `(col1, col2, col3)` 和源中的选择项 `(column_a, column_b, column_c)` 应该一一映射并兼容数据类型[^4]。 #### 3. 跨数据库的操作 对于跨数据库场景下的数据迁移需求,通常采用如下形式: ```sql INSERT INTO database_B.schema.target_table (col1, col2, ...) SELECT col1, col2, ... FROM database_A.schema.source_table WHERE condition; ``` 这要求用户具有足够的权限访问涉及的所有数据库对象,并且各数据库之间的连接配置正常工作[^2]。 #### 示例代码展示 假设存在两张格分别为 employees 和 new_employees ,我们希望基于某些条件筛选员工记录存放到新里。 ```sql -- 假设两张有相同的结构 INSERT INTO new_employees SELECT * FROM employees WHERE department='Sales'; -- 如果只关心特定几列而非整行复制则可这样写 INSERT INTO new_employees (id,name,salary) SELECT id,name,salary FROM employees WHERE salary>50000; ``` ### 注意事项 - 确保目标已经创建好并且其定义能够容纳来自源数据。 - 当涉及到大数据量传输时考虑性能优化措施比如批量提交事务处理等策略[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值