2010-02-24 11 views
8

Tengo problemas para cargar datos de archivos planos delimitados por tabuladores (archivos TSV) en SQL Server 2005 utilizando el asistente de importación de datos de SSIS. No experimenté este problema utilizando el procedimiento equivalente en SQL Server 2000, y he comprobado que la estructura interna de los archivos que estoy tratando de importar no ha cambiado desde mucho antes de que se llevara a cabo la actualización de SQL Server.¿Conservando NULLs en columnas numéricas usando el Asistente de importación/exportación de SSIS?

El problema es que todos los valores en blanco de las columnas con tipos de datos numéricos (por ejemplo, smallint, float, etc.) se convierten a 0 en la importación, en lugar de NULL. Esto significa que AVGing a través de estos datos está dando resultados erróneos.

Los archivos TSV no incluyen calificadores de texto, sin embargo, la prueba del uso de calificadores con algunos datos ficticios no condujo a la resolución de este problema.

Es posible retener los NULL importando en columnas VARCHAR, sin embargo, esto está lejos de ser ideal. ¿Existe alguna manera de indicar al asistente de importación/exportación de SSIS que importe valores en blanco de archivos planos en columnas con tipos de datos numéricos como NULL en lugar de 0?

Respuesta

4

Ver mi answer here favor

El asistente no expone la correcta proponiéndose que necesita ...

+0

¿Esto significa que no hay forma en el asistente Importar/Exportar para activar la configuración 'mantener nulos'? De las alternativas, ¿cuál es la forma más eficiente de importar los datos? Hasta ahora, solo he usado el asistente para importar. Disculpas si esto parece una pregunta básica. No soy un programador, mi trabajo es analizar los datos y producir informes basados ​​en él, pero para poder hacerlo necesito ingresar a la base de datos. – Lethanta

+0

@Lethanta; eso es correcto, lo siento. Otras formas de importar datos son más para "programadores" – gbn

2

@gbn: Gracias por el puntero. Creo que ahora he encontrado una forma de solucionar este problema y he podido importar con éxito en mi base de datos SQL Server 2005 los valores NULL en columnas numéricas.


En caso de que alguien más está teniendo el mismo problema:

me importan los datos mediante la tarea de flujo de datos en el Estudio de Desarrollo de Business Intelligence (en lugar de utilizar el dtswizard como antes) por construir una tarea de flujo de datos desde el origen de archivo plano al destino OLE DB.

En el cuadro Editor de fuente de archivo plano hay una casilla de verificación 'conservar los valores nulos de la fuente como valores nulos en el flujo de datos'. Al marcar esto, parece que se resuelve este problema.

Como @gbn señaló, esta casilla no se encuentra en el asistente.

Cuestiones relacionadas