sql语句将Excel中的一列批量更新到sql server中的一列中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句将Excel中的一列批量更新到sql server中的一列中?相关的知识,希望对你有一定的参考价值。

我有一个Excel,文件名为userid.xls其中一列列名为name,有6000到7000个数据,每天更新数据,名字的个数不一定。现在我用C#中的for循环可以每天将excel中的该列值更新到ms sql数据库中。数据库的表名为idName,表中一列为列名为Uname用以存放excel中的数据。用for循环每次都要卡很久才能将数据更新完,是否有办法用一句sql语句,批量将excel中的name列更新到sql中的Uname列中呢?

感觉用你现在这个方法挺好的,把这个循环放新建一个线程里就不会卡了,另外加个进度条给用户一个交互界面挺好的 参考技术A 。。。用navicat这个软件试试,应该可以直接复制进去追问

我需要的是一个sql语句,需要自己用C#写代码解决,谢谢。。。。

参考技术B 你看一下。net 的sqlBulkCopy追问

能详细一点吗?

SQL - 将数据从同一表中的一列复制到另一列

【中文标题】SQL - 将数据从同一表中的一列复制到另一列【英文标题】:SQL - Copy data from one column to another in the same table 【发布时间】:2021-05-06 11:31:33 【问题描述】:

我有一个包含 1000 多行的表,我正在尝试将所有行的数据从一列复制到另一列。

这是我的“发票”表:

example1 example 2
A NULL
B NULL
C NULL

预期的最终结果应该是:

example1 example 2
A A
B B
C C

到目前为止我尝试了什么:

UPDATE "Invoice" 
SET "example1" = copiedData
FROM (SELECT "example2" FROM "Invoice") AS copiedData;

这确实会更新所有行,但问题是它不会逐行更新,而是从子查询中随机选取一行并将其应用于所有行。

当前结果的示例:

example1 example 2
A B
B B
C B

我在这里错过了什么?

谢谢。

【问题讨论】:

【参考方案1】:

你想要的更简单:

UPDATE "Invoice" 
    SET "example2" = "example1";

注意:我强烈建议您删除双引号!不要转义列名——它只会让代码的编写和阅读变得更加困难。

【讨论】:

【参考方案2】:

您只需要使用 example1 更新 Invoice 表的 example2 列。

UPDATE Invoice 
SET example2 = example1;

如果您只想在 example2 列为空时更新它,那么您还需要一个 where 子句。

UPDATE Invoice 
SET example2 = example1 where example2 is null;

【讨论】:

以上是关于sql语句将Excel中的一列批量更新到sql server中的一列中?的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL中批量更新数据

sql如何将一张表中的一列数据分为两列显示

如何有条件的更新sql 数据表中的列值?

如何对批量的Excel数据生成sql脚本啊?

如何将SQL查询出来的一列数据赋值,执行存储过程

怎么在SQL里逐行修改数据