Не мисля, че можете да пропускате редове в различен формат с BULK INSERT
/BCP
.
Когато стартирам това:
TRUNCATE TABLE so1029384
BULK INSERT so1029384
FROM 'C:\Data\test\so1029384.txt'
WITH
(
--FIRSTROW = 2,
FIELDTERMINATOR= '|',
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.