Я не думаю, что вы можете пропустить строки в другом формате с помощью 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.