Nie sądzę, że możesz pominąć wiersze w innym formacie za pomocą BULK INSERT
/BCP
.
Po uruchomieniu tego:
TRUNCATE TABLE so1029384
BULK INSERT so1029384
FROM 'C:\Data\test\so1029384.txt'
WITH
(
--FIRSTROW = 2,
FIELDTERMINATOR= '|',
ROWTERMINATOR = '\n'
)
SELECT * FROM so1029384
otrzymuję:
col1 col2 col3
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
***A NICE HEADER HERE***
0000001234 SSNV 00013893-03JUN09
0000005678 ABCD 00013893-03JUN09
0000009112 0000 00013893-03JUN09
0000009112 0000 00013893-03JUN09
Wygląda na to, że wymaga znaku „|” nawet w danych nagłówka, ponieważ czyta do tego w pierwszej kolumnie - połykając znak nowej linii w pierwszej kolumnie. Oczywiście, jeśli dodasz parametr terminatora pola, oczekuje on, że każdy wiersz MUSI mieć.
Możesz usunąć wiersz z krokiem wstępnego przetwarzania. Inną możliwością jest wybranie tylko kompletnych wierszy, a następnie ich przetworzenie (bez nagłówka). Lub użyj narzędzia, które sobie z tym poradzi, takiego jak SSIS.