Solución:
He visto este problema antes, Excel es el problema, no SSIS. Excel muestra las primeras filas y luego infiere el tipo de datos incluso si lo establece explícitamente en texto. Lo que debe hacer es poner esto en la cadena de conexión del archivo de Excel en el paquete SSIS. Esta instrucción le dice a Excel que las columnas contienen tipos de datos mixtos y le sugiere que realice una verificación adicional antes de decidir que la columna es un tipo numérico cuando en realidad no lo es.
;Extended Properties="IMEX=1"
Debería funcionar con esto (en la mayoría de los casos). Lo más seguro es exportar los datos de Excel a texto delimitado por tabulaciones y usar SSIS para importarlo.
- http://blogs.acceleration.net/ryan/archive/2005/01/11/477.aspx
Puede convertir (es decir, forzar) los datos de la columna a texto … Pruebe esto (Nota: estas instrucciones se basan en Excel 2007) …
Los siguientes pasos deberían obligar a Excel a tratar la columna como texto:
Abra su hoja de cálculo con Excel.
Seleccione la columna completa que contiene sus “datos en su mayoría numéricos” haciendo clic en el encabezado de la columna.
Haga clic en la pestaña Datos en el menú de la cinta.
Seleccione Texto en columnas. Esto abrirá el Asistente para convertir texto en columnas.
-En el paso 1: haga clic en Siguiente
-En el paso 2: haga clic en Siguiente
-En el paso 3: seleccione Texto y haga clic en Finalizar
Guarde su hoja de Excel.
Vuelva a intentar la importación con el Asistente de importación de datos de SQL Server 2005.
Además, aquí hay un enlace a otra pregunta que tiene respuestas adicionales:
El asistente de importación de datos no le gusta el tipo de datos que elijo para una columna
Una cosa que no se menciona en la respuesta aceptada es que el parámetro “IMEX = 1” debe ir dentro la porción cotizada de:
...;Extended Properties="...";