记一次批量修改SQLServer表数据
前提:
1.数据有上百万条,分成10几张excel表,从数据库中导出,由业务部门修改;
2.数据没什么规律;
3.和数据库DB商量后决定先把从excel导进数据库中,再通过关联查询修改数据
将 Excel 数据导入 SQL Server:
大致有两种解决方案:直接从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即可