Value in a column inappropriate data type? Perhaps you have an extra comma, embedded in the data for a column, that is not "escaped" with quotes - and thus the remainder of the columns in that row are off-by-one?I normally create a staging table with the appropriate number of columns, all VARCHAR(MAX) datatype, import into that, do some analysis of the columns - e.g. to see if an integer column contains any non-numeric rows:SELECT ...FROM MyStagingTableWHERE MyIntColumn LIKE '%[^0-9]%'
similarly for dates. Also check varchar columns that the MAX(LEN(MyColumn)) does not exceed the defined width.Once that is all OK you can either repeat the bulk import direct to the table (if you have cleaned up the source data), or insert from your staging table (i.e. after that has been cleaned up, or by ignoring the error-rows)To ignore the error-rows add an "Error Message" column, and UPDATE that on any error rows, eg.:UPDATE USET [MyErrorMsg] = COALECSE([MyErrorMsg]+'; ', '') + 'MyIntColumn not numeric'FROM MyTable AS UWHERE MyIntColumn LIKE '%[^0-9]%' AND MyIntColumn IS NOT NULL
then you can "import" just the non-error rows:INSERT INTO ...SELECT Col1, Col2, ...FROM MyStagingTableWHERE MyErrorMsg IS NULL