批量更新sql |批量update sql
批量更新表时,update一个表的列时,需要依赖另外的表,这种依赖可以是where条件子句,也可以要update的field的值依赖另外的表
通常有两种做法
1.使用存储过程
2.在程序代码里逐条循环执行
这里给出一种更高效、简洁的做法,批量更新SQL ,一句SQL就可以替代麻烦的循环过程,有MS SQLServer、Oracle、DB2下的写法
--关键点:t4和t1是同一个table,primary key肯定也是同一个,
--并以它进行关联,这样在 select语句里即可引用到要update的表的fields
UPDATE Table1 AS t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE t2.Field24 >= ''
AND t1.fId = t4.fId);
----------------------------MS SQLServer --------------------------------------
UPDATE t1
SET Field1 = Field21, Field2 = Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId);
----------------------------Oracle --------------------------------------------
UPDATE Table1 t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId))
WHERE EXISTS (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId));
---------------------------------DB2 ------------------------------------------
UPDATE Table1 AS t1
SET (Field1,Field2) = (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId))
WHERE EXISTS (SELECT Field21, Field22
FROM Table2 t2
INNER JOIN Table3 t3
ON t3.Field31 = t2.Field23
INNER JOIN Table4 t4
ON t3.Field32 = t4.Filed41
WHERE ((t2.Field24 >= '')
AND t1.fId = t4.fId));
分享到:
相关推荐
通常情况下,我们会使用以下SQL语句来更新字段值: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?刚...
SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate
使用SQL语句批量更新数据.rar使用SQL语句批量更新数据.rar
以下小编给大家列出了三种实现thinkphp批量更新数据的方法,写的不好还请见谅,有意见欢迎提出,共同学习进步! 方法一: //批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式 function batch_...
1.批量对多个sql server数据库执行查询或者更新操作。 2.支持将记录集导出为txt、xml,office excel文件中,程序根据本机安装的EXCEL版本自动决定每个sheet最大的行数,超过每个sheet最大的行数后,查询结果集自动...
我现在想把S_USER表中的ACCOUNT批量修改成S_PERSON的ACCOUNT 我们可以发现S_USER表中有个跟S_PERSON表关联的字段 那就是PERSON_ID 这也是我们要update的条件 找到这个关系以后我们就不难写sql了 update S_USER set ...
Delphi批量更新SQL数据库内容,批量更新数据的Delphi实例,文件夹Database下包括两个文件:DelphiClassical200 _Data.MDF、DelphiClassical200 _Log.LDF为数据库附加文件。测试前请附加到SQLServer中,并定义好...
向postgresql中利用sql批量跟新记录的实现代码。
3. 根据查询出来的表格,选择行之后可任意生成Insert,Update,Delete等SQL,生成SQL可直接运行; 4. 生成Insert,Update,Delete等SQL的时候,会自动过滤掉种子列和计算列; 5. 批量操作字符串,批量增加和批量减少...
本文实例讲述了C#批量更新sql的方法,分享给大家供大家参考。具体方法如下: 要实现批量更新Card数据,主要有以下步骤: 1、首先建立数据库连接 2、把部分数据填充到Dataset中 3、修改Dataset中数据的值 4、更新...
可以方便的将外部数据批量导入、批量合并导入、批量更新导入、批量删除到Sqlserver数据库,基本支持Sqlserver最新的数据库,我用的是Sqlserver2008R2,一点问题没有。共享一下。 需要批量导入数据的同学们,这是福音...
sql server 批量生成数据小工具(安装包): ...可针对某张表自动生成select,insert,update,delete样例语句,帮助节省编写sql的时间; 这是用VS2010做的小工具。在安装它之前,请先确保你的机器已安装.net framework 4.0
有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些重复性的劳动,所以打算用Python来批量执行sql ...
使用C#直接对DataTable进行操作,实现了sql语句的update tabel set name = 'Clear_Mind' where id 的功能。
可以方便的将外部数据批量导入、批量合并导入、批量更新导入、批量删除到Sqlserver数据库,基本支持Sqlserver最新的数据库,我用的是Sqlserver2008R2,一点问题没有。共享一下。 需要批量导入数据的同学们,这是福音...
可以方便的将外部数据批量导入、批量合并导入、批量更新导入、批量删除到Sqlserver数据库,基本支持Sqlserver最新的数据库,我用的是Sqlserver2008R2,开发环境vs2010,一点问题没有(这是最新版本,vs2013应该没有...
Update和Select结合使用,批量做更新。
根据表结构生成打印出根据主键update的语句
主要介绍了Mybatis中使用updateBatch进行批量更新的相关资料,有逐条更新,sql批量更新等,具体实例代码大家参考下本