Jeg tror ikke, du kan springe rækker over i et andet format med BULK INSERT
/BCP
.
Når jeg kører dette:
TRUNCATE TABLE so1029384
BULK INSERT so1029384
FROM 'C:\Data\test\so1029384.txt'
WITH
(
--FIRSTROW = 2,
FIELDTERMINATOR= '|',
ROWTERMINATOR = '\n'
)
SELECT * FROM so1029384
Jeg får:
col1 col2 col3
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
***A NICE HEADER HERE***
0000001234 SSNV 00013893-03JUN09
0000005678 ABCD 00013893-03JUN09
0000009112 0000 00013893-03JUN09
0000009112 0000 00013893-03JUN09
Det ser ud til, at det kræver '|' selv i overskriftsdataene, fordi den læser op til det i den første kolonne - sluger en ny linje i den første kolonne. Selvfølgelig, hvis du inkluderer en feltterminatorparameter, forventer den, at hver række MÅ har en.
Du kan strippe rækken med et forbehandlingstrin. En anden mulighed er kun at vælge komplette rækker og derefter behandle dem (eksklusive overskriften). Eller brug et værktøj, der kan håndtere dette, såsom SSIS.