行使FIRSTROW参数的SQL批量插入会跳过以下行
发布时间:2021-03-31 11:17:14 所属栏目:编程 来源:网络整理
导读:我好像无法弄清晰这是怎么回事. 以下是我实行批量插入SQL Server 2005的文件示例: ***A NICE HEADER HERE***0000001234|SSNV|00013893-03JUN090000005678|ABCD|00013893-03JUN090000009112|0000|00013893-03JUN090000009112|0000|00013893-03JUN09 这是我的
我好像无法弄清晰这是怎么回事. 以下是我实行批量插入SQL Server 2005的文件示例: ***A NICE HEADER HERE*** 0000001234|SSNV|00013893-03JUN09 0000005678|ABCD|00013893-03JUN09 0000009112|0000|00013893-03JUN09 0000009112|0000|00013893-03JUN09 这是我的批量插入声明: BULK INSERT sometable FROM 'E:filefromabove.txt WITH ( FIRSTROW = 2,FIELDTERMINATOR= '|',ROWTERMINATOR = 'n' ) 可是,出于某种缘故起因,我能获得的独一输出是: 0000005678|ABCD|00013893-03JUN09 0000009112|0000|00013893-03JUN09 0000009112|0000|00013893-03JUN09 除非我完全删除问题而且不行使FIRSTROW参数,不然老是会跳过第一笔记录.这怎么也许? 提前叩谢! 办理要领我不以为您可以行使BULK INSERT / BCP以差异的名目跳过行.当我运行这个: TRUNCATE TABLE so1029384 BULK INSERT so1029384 FROM 'C:Datatestso1029384.txt' WITH ( --FIRSTROW = 2,ROWTERMINATOR = 'n' ) SELECT * FROM so1029384 我大白了: col1 col2 col3 -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ***A NICE HEADER HERE*** 0000001234 SSNV 00013893-03JUN09 0000005678 ABCD 00013893-03JUN09 0000009112 0000 00013893-03JUN09 0000009112 0000 00013893-03JUN09 看起来它必要’|’乃至在问题数据中,由于它读取到第一列 – 将换行符吞入第一列.显然,假如你包括一个字段终止符参数,它祈望每一行必需有一个. 您可以行使预处理赏罚步调剥离行.另一种也许性是只选择完备的行,然后处理赏罚它们(解除问题).可能行使可以处理赏罚此题目的器材,譬喻SSIS. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |