【问题标题】:Insert large size of data from txt, csv file to SQL Server table with few invalid rows将大量数据从 txt、csv 文件插入到 SQL Server 表中,无效行数很少
【发布时间】:2011-08-09 17:48:03
【问题描述】:
我需要将数据文件中的数据插入到 SQL Server 表中。数据文件可能包含数千行,但文件中的某些行可能是错误的(例如,BIRTH_DATE 列值格式错误或字符串无法转换为 int)。我可能会使用批量插入功能,但由于文件中的某些行无效,因此不会插入任何行,因为无效行很少。我想忽略错误的行,理想情况下获取每个无效行的行号。我想做最高的性能。有什么想法吗?
提前致谢
-石油
【问题讨论】:
标签:
c#
.net
sql
sql-server
ado.net
【解决方案1】:
我通常以两种方式之一处理这种情况:
将数据批量复制到临时表中。暂存表可能是所有 VARCHAR 列,也可能是每一行的一个长 VARCHAR 列,具体取决于数据的格式和质量。一旦它在临时表中,我就可以进行检查并提取任何有问题的行,以便稍后通过人工干预来处理。
SSIS 包含很好的工具来重定向有错误的行。在线查看 MSDN 中的相应文档,如果您有任何具体问题,可以在此处创建一个新问题,我相信人们可以帮助您解决问题。