Problema de SQL Bulkcopy AAAAMMDD

Tengo un problema de conversión de cadena a fecha usando SQL Bulkcopy en asp.net 3.5 con C #

Leí un archivo CSV grande (conLector CSV) Una de las cadenas leídas debe cargarse en una columna Fecha de 2008 del servidor SQL.

Si el archivo de texto contiene, por ejemplo, la cadena '2010-12-31', SQL Bulkcopy lo carga sin problemas en la columna Fecha.

Sin embargo, si la cadena es '20101231', aparece un error:
El valor dado de tipo String del origen de datos no se puede convertir a la fecha de tipo de la columna de destino especificada

El archivo contiene 80 millones de registros, por lo que no puedo crear una tabla de datos ...

SqlBulkcopy Columnmappings, etc. están bien. También cambiar a DateTime no ayuda.

Lo intenté

SET DATEFORMAT ymd;

Pero eso no ayuda.

¿Alguna idea de cómo decirle a SQL Server que acepte este formato? De lo contrario, crearé una solución personalizada en el lector CSV, pero preferiría algo en SQL.

actualizar Siguiendo con las dos respuestas, estoy usando la copia masiva de SQL de esta manera (como se propuso en Stackoverflow en otra pregunta):

El lector CSV (vea el enlace de arriba en el proyecto de código) devuelve valores de cadena (no de tipo fuerte). El CSVreader implementa System.Data.IDataReader para que pueda hacer algo como esto:

using (CsvReader reader = new CsvReader(path)) 
using (SqlBulkCopy bcp = new SqlBulkCopy(CONNECTION_STRING))
{ bcp.DestinationTableName = "SomeTable"; 
  // columnmappings
  bcp.WriteToServer(reader); } 

Todos los campos que provienen de iDataReader son cadenas, por lo que no puedo usar el enfoque de c # a menos que cambie bastante en CSVreader

Por lo tanto, mi pregunta no está relacionada con cómo solucionarlo en C #, puedo hacerlo pero quiero evitarlo.

Es extraño, porque si haces un sql algo como

 update set [somedatefield] = '20101231' 

también funciona, solo que no con bulkcopy.

¿Alguna idea de por qué?

Gracias por cualquier consejo, Pleun

Respuestas a la pregunta(3)

Su respuesta a la pregunta