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中的一列中?的主要内容,如果未能解决你的问题,请参考以下文章