记一次批量修改SQLServer表数据

前提:

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即可

posted @ 2019-10-08 15:48  ldybyz  阅读(5720)  评论(1编辑  收藏  举报