Ignorar ciertas columnas al usar BULK INSERT

Tengo un file de text delimitado por comas con la estructura

field1 field2 field3 field4 1 2 3 4 

Escribí el siguiente script para insert a granel el file de text, pero quería dejar fuera la columna 3

 create table test (field1 varchar(50),field2 varchar(50),field4 varchar(50)) go bulk insert test from 'c:\myFilePath' with (fieldterminator=',', rowterminator='\n' ) 

La inserción funcionó bien, pero los resultados de la inserción hicieron que field4 se viera como field3, field4, por lo que el campo 3 simplemente se concatenó en field4. Los files planos con los que estoy trabajando son varios conciertos y no se pueden modificar fácilmente. ¿Hay alguna manera de usar la inserción masiva pero hacer que ignore las columnas que no están declaradas en la statement create table?

Puede usar un file de formatting para hacer esto:

http://msdn.microsoft.com/en-gb/library/ms178129.aspx

http://msdn.microsoft.com/en-gb/library/ms179250.aspx

O si lo que quieres es un poco más descarado, simplemente importa todo y suelta una columna después. 😉

no se puede ignorar un campo mientras se hace la inserción masiva, insiste en hacerlo … Cargue las 4 columnas y suelte la columna que no quiere

 create table test (field1 varchar(50),field2 varchar(50), field3 varchar(50),field4 varchar(50)) go bulk insert test from 'c:\myFilePath' with (fieldterminator=',', rowterminator='\n' ) ALTER TABLE test DROP column [field3] 

La forma más fácil es crear una vista que tenga solo las columnas que necesita.

Luego inserte a granel en esa vista.