`
robinsoncrusoe
  • 浏览: 748773 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

批量更新sql |批量update sql

阅读更多
批量更新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 Server批量插入批量更新工具类

    SQL Server批量插入批量更新工具类,SqlBulkCopy,BatchUpdate

    使用SQL语句批量更新数据.rar

    本资料“使用SQL语句批量更新数据.rar”将深入探讨如何高效地使用SQL批量更新数据库中的记录。 一、SQL批量更新基础 1. UPDATE语句:批量更新的基础是SQL的UPDATE语句。基本语法如下: ```sql UPDATE 表名 SET ...

    ibatis应对批量update

    ### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...

    Mysql Update批量更新的几种方式

    通常情况下,我们会使用以下SQL语句来更新字段值: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?刚...

    SQL SERVER数据库批量更新程序

    【SQL SERVER数据库批量更新程序】是一款专为SQL SERVER设计的工具,它允许用户高效地对多个数据库执行查询或更新操作。这款程序的核心功能是能够基于查询结果生成相应的SQL语句,方便用户进行批量处理,极大地提高...

    mysql 批量更新及效率对比

    批量 Update 是最原始的批量更新方法,每条记录执行一次 Update 语句,例如: ```sql update test_tbl set dr='2' where id=1; ``` 这种方法的性能非常差,例如更新 100000 条数据需要 15.557 秒。 方法二:...

    SQL SERVER数据库批量更新程序 1.0.0.35

    【SQL SERVER数据库批量更新程序 1.0.0.35】是一款专为SQL SERVER数据库设计的工具,用于高效地执行大量数据的更新操作。它采用C#编程语言开发,并结合ADO.NET技术,提供了一种简便的方式来处理和优化批量更新过程。...

    VB 利用UPDATE语句批量更新数据表中的数据

    在本教程中,我们将专注于“利用UPDATE语句批量更新数据表中的数据”这一主题。UPDATE语句是SQL语言的一个重要部分,用于修改已存在于数据库表中的记录。在VB中,我们可以结合ADO(ActiveX Data Objects)库来执行...

    Delphi批量更新SQL数据库内容..rar

    标题 "Delphi批量更新SQL数据库内容" 暗示了这个压缩包可能包含了一系列使用Delphi编程语言编写的代码或工具,用于实现批量更新SQL数据库的功能。Delphi是一款流行的Object Pascal集成开发环境(IDE),它提供了高效...

    Linq2SQL批量更新

    为了解决这个问题,“Linq2SQL批量更新”应运而生。 批量更新功能允许我们一次性的修改多条记录,从而显著提升性能,特别是在大数据集的场景下。批量更新不仅减少了网络往返次数,还降低了数据库的事务开销,提升了...

    提高批量SQL执行程序速度

    提高批量SQL执行程序的速度需要考虑多个因素,包括批量发送SQL、指定SQL条数、触发事件函数、DataAdapter.Update(DataTable)方法和SqlBulkCopy类的应用等。通过合理地使用这些方法可以大大提高系统的性能和效率。

    Thinkphp批量更新数据的方法汇总

    以下小编给大家列出了三种实现thinkphp批量更新数据的方法,写的不好还请见谅,有意见欢迎提出,共同学习进步! 方法一: //批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式 function batch_...

    postgresql sql批量更新记录

    本篇将详细介绍如何在PostgreSQL中利用SQL批量更新记录,以及通过示例代码解释其工作原理。 批量更新记录的主要目的是避免对数据库进行单条记录的循环更新,从而提升性能。在给定的代码中,创建了一个名为`...

    10万条数据下MySQL批量更新6种方式的性能测试.zip

    包括MyBatis-Plus提供的批量更新,JdbcTemplate提供的批量更新,在xml中循环拼接sql批量更新、case when语句批量更新、replace into方式批量更新、ON DUPLICATE KEY UPDATE批量更新。 适用于对Spring Boot和数据库...

    SQL SERVER数据库批量更新程序 1.0.0.33

    1.批量对多个sql server数据库执行查询或者更新操作。 2.支持将记录集导出为txt、xml,office excel文件中,程序根据本机安装的EXCEL版本自动决定每个sheet最大的行数,超过每个sheet最大的行数后,查询结果集自动...

    批量执行Sql脚本工具(含代码)

    2. **脚本文件**:SQL脚本通常是以`.sql`为扩展名的文本文件,包含一系列SQL命令,如CREATE TABLE、INSERT INTO、UPDATE、DELETE等,用于对数据库进行结构或数据的操作。 3. **源码分析**:提供源码意味着用户可以...

    insert,update导出sql语句

    总结来说,INSERT和UPDATE SQL语句是数据库操作的核心,用于添加和修改数据。导出这些语句的目的是为了数据备份、恢复或在不同环境间迁移数据。使用合适的工具或脚本,可以轻松地批量生成这些语句,提高工作效率。而...

    ORACLE批量更新四种方法.txt ORACLE批量更新四种方法.txt

    最直观的方法是直接使用SQL更新语句来进行批量更新。 ```sql update T1 set T1.Subobject_Name = 'StevenHuang' where exists (select 1 from T2 where T1.Subobject_Name is null and T1.ID = T2.ID); ``` **特点...

    SqlServer中批量update语句

    标题所提到的"SqlServer中批量update语句"就是一个很好的例子,它展示了如何根据两个表之间的关联字段进行数据同步。 描述中提到了两张表——S_PERSON和S_USER,我们需要将S_USER表中的ACCOUNT字段更新为S_PERSON表...

Global site tag (gtag.js) - Google Analytics