Non credo che tu possa saltare le righe in un formato diverso con BULK INSERT
/BCP
.
Quando eseguo questo:
TRUNCATE TABLE so1029384
BULK INSERT so1029384
FROM 'C:\Data\test\so1029384.txt'
WITH
(
--FIRSTROW = 2,
FIELDTERMINATOR= '|',
ROWTERMINATOR = '\n'
)
SELECT * FROM so1029384
Ottengo:
col1 col2 col3
-------------------------------------------------- -------------------------------------------------- --------------------------------------------------
***A NICE HEADER HERE***
0000001234 SSNV 00013893-03JUN09
0000005678 ABCD 00013893-03JUN09
0000009112 0000 00013893-03JUN09
0000009112 0000 00013893-03JUN09
Sembra che richieda '|' anche nei dati dell'intestazione, perché legge fino a quello nella prima colonna, inghiottendo una nuova riga nella prima colonna. Ovviamente se includi un parametro di terminazione di campo, si aspetta che ogni riga DEVE averne uno.
È possibile rimuovere la riga con una fase di pre-elaborazione. Un'altra possibilità è selezionare solo le righe complete, quindi elaborarle (escludendo l'intestazione). Oppure usa uno strumento in grado di gestirlo, come SSIS.