前提:

1.数据有上百万条,分成10几张excel表,从数据库中导出,由业务部门修改;

2.数据没什么规律;

3.和数据库DB商量后决定先把从excel导进数据库中,再通过关联查询修改数据

将 Excel 数据导入 SQL Server:

参考了以下文档  https://docs.microsoft.com/zh-cn/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-2017,

大致有两种解决方案:直接从Excel 导入;转化成文本导入;

1.首先尝试了第一种解决方案,必须按照excel相关插件,由于服务器上只装了2003的版本,先把xlsx文件转为xls文件,右击数据库,点击任务-》导入数据,结果每次只能导入前几万条,后面的数据就没导进去(不知道是不是设置的原因),而且效率比较低

2.用文本的方式导入数据,excel文件另存为“文本文件(制表符分隔)(.txt)”或“CSV (逗号分隔)(.csv)”;如果数据中存在逗号或者制表符会造成导入失败。

这里我选择了制表符的txt文件,因为制表符在数据库中存储的不多。接着新建表test来存储这些数据,执行以下sql

USE ImportFromExcel;
GO
BULK INSERT Test FROM 'C:\Temp\data.txt'
WITH (
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
);
GO

如果执行完成后发现报错,定位到txt文件中的具体位置(ctrl+g跳转到具体行号),查看数据中是否有异常或者不符合格式的数据,修改数据或者删除放在后续处理;清空表数据再重新执行sql即可

记一次批量修改SQLServer表数据的更多相关文章

  1. SqlServer表数据与excel中数据的互相复制

    一.SqlServer表数据复制到excel 1.新建查询,用sql语句把表数据读出来 2.然后,选择数据,右键,复制(也可以点击连同标题复制),复制到记事本中(不然会乱码) 3.然后再把记事本的内容 ...

  2. AE开发之默认滚轮缩放功能反置(C#修改注册表数据)

    ArcMap默认的滚轮缩放是向下放大,向上缩小 如果想修改成向上放大,向下缩小,直接在ArcMap-Customize-ArcMap Options里, 将最下面的Mouse Wheel and Co ...

  3. sqlserver 批量修改数据库表主键名称为PK_表名

    1.我们在创建sqlserver得数据表的主键的时候,有时会出现,后面加一串随机字符串的情况,如图所示: 2.如果你有强迫症的话,可以使用以下sql脚本进行修改,将主键的名称修改为PK_表名. --将 ...

  4. sqlserver表数据的修改

    清除表数据  truncate table  [表名称] 将表b中的一列数据,更新到表tableA  如: tableA .key tableA .value 123   124   tableB.k ...

  5. 批量修改ACCESS表列名

    问题来源:从ODBC导入数据到ACCESS 再从ACCESS导入到SQL数据库,ACCESS会多带个DBO. 所以需要批量修改ACCESS的表名. 首先需要引用ADOX引用方法:打开ACCESS的VB ...

  6. Sqlserver 连接oracle和mysql数据库 已经oracle导入sqlserver表数据

    SQL Server2012创建连接服务器到ORACLE11G 8,百思考不知道原因啊??突然我发现如下:链接服务器—〉访问接口—〉OraOLEDB.Oracle—〉允许进程内没有勾上,但是我想上面的 ...

  7. 一次EF批量插入多表数据的性能优化经历

    距离上次的博客已经有15个多月了,感慨有些事情还是需要坚持,一旦停下来很有可能就会停很久或者从此再也不会坚持.但我个人一直还坚持认为属于技术狂热份子,且喜欢精益求精的那种.最近遇到两个和数据迁移相关的 ...

  8. notepad++ 文本替换功能,解决excel批量修改数据库的数据操作

    ^ \(' 开始\t ',' 制表符$ '\) 行末 复制出来之后,使用文本替换功能,转换为SQL,添加到临时表中.然后多表关联修改. SELECT COUNT(*) FROM orderno; # ...

  9. 批量更新mysql表数据

    1.批量更新表中某个字段,如果表比较大,每条记录都执行一条update,1s执行10条数据,10万条数据就要1W秒,3个多小时. 2.可以用case when 来实现,模板如下 UPDATE cate ...

随机推荐

  1. 数学&计算机工程常用希腊字母表及其发音

  2. yum安装apache

    一.查询是否已经安装apache rpm  -qa  httpd 注:Apache在linux系统里的名字是httpd 如果有返回的信息,则会显示已经安装的软件.如果没有则不会显示其它的信息.如下图是 ...

  3. Cocos2d-x之引擎框架简介

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 1.cocos2d-x的设计思想 cocos2d-x分为导演,场景,图层,精灵,节点: (1).导演(Director):控制整个游戏的场 ...

  4. 为什么javaBean要有get/set方法的设计

    可以应对将来的修改,比如有一个以长度计算的项目开发好了,过段时间客户说这个项目要在美国上市,有了javaBean只要把所有以厘米计算的单位都乘以2.54转化为正确单位交给客户 public class ...

  5. RedisTemplate序列号自增id(当前日期+序列号)

    话不多上,直接上码 public class TestService { @Resource RedisTemplate<String, Object> redisTemplate; pu ...

  6. Nginx反向代理与负载均衡应用实践(二)

    Nginx反向代理与负载均衡应用实践(二) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ...

  7. vue element-ui NavMenu错位问题

    原因:子菜单全部打开后太长超过100% 解决方法:设置只能点击打开当前的菜单

  8. 73. PrintStream(打印流)

    PrintStream(打印流)   打印流可以打印任意类型的数据,而且打印前都会把数据转换成字符串再进行打印(就是把数据存入硬盘中) 编码与解码图例:下面我们来看看一个简单的字节输出流 public ...

  9. leetcode-12双周赛-1246-删除回文子数组

    题目描述: 方法:区间dp O(N^3) class Solution: def minimumMoves(self, A: List[int]) -> int: N = len(A) dp = ...

  10. C之输入输出函数(3) -- 请使用sscanf()

    #include <stdio.h> int fscanf(FILE *__restrict__stream, const char *__restrict__format-string, ...