none
Se pueden guardar los nombres de los campos mediante SSIS???? RRS feed

  • Pregunta

  • Buenos días,

    Soy bastante nueva en esto de SSIS y me han asignado el crear un procedimiento, función...lo que quiera, pero que sirva para cargar cualquier fichero de excel en SQL Server 2005.

    Investigando y preguntando, me enteré de que SSIS no permite la creación de tablas dinámicas, por lo que he creado un procedimiento que verifica si la tabla existe o no. Si no existe, la crea, y si existe, verifica que los campos sean los mismos (nombre y numero de campos). Para poder hacer esto, lo hago mediante una tabla auxiliar con dos campos: id_col y  nombre_col.

    En esa tabla simplemente hay un listado con los nombres de las diferentes columnas que tiene el archivo que voy a importar...y aqui es donde me encuentro el problema, alguien sabe como podría guardar los nombres de las cabeceras a la tabla auxiliar?? lo he intentado mediante unpivot, y funciona pero cada vez que se cambie el archivo excel me pide mapeo, asi que habia pensado a ver si hay posibilidad de hacerlo mediante variables, exportando a un txt o alguna forma que no requiera de mapeos extras cuando se cambie el archivo...

    PD: Se que esto sería mucho mas sencillo con openrowset o similar pero no consigo que me funcione...es posible que sea por el formato de los programas que hay en el server, pero no tengo permisos para instalar/desinstalar asi que esa opcion ya la he dado por perdida...

    Muchas gracias de antemano!


    SarayAC

    lunes, 3 de abril de 2017 6:28

Respuestas

  • Gracias por tu respuesta Enrique.

    Ayer despues de poner el post continué investigando por google, y vi que hay un bucle en SSIS que es "Foreach ADO.NET Schema Rowset enumerator". En la infromación ponía que sirve para ver la información del esquema en una tabla (lo que no sé si incluye los nombres de los campos). Haría la prueba, pero realmente no sé como funciona ese bucle, al menos con al utilidad que yo le quiero dar, sobre todo porque no sé si servirá para eso. Además, en mi caso sería para obtener información de un excel, aunque el excel lo cargue por medio de OLE DB source...


    SarayAC

    martes, 4 de abril de 2017 6:22

Todas las respuestas

  • Saludos 

    Hasta donde se (y mi conocimiento en SSIS es limitado), si el nombre del archivo no cambia puedes hacerlo pero si es un archivo dinamico que solo toma lo que caiga en la carpeta no es posible, espero que alguien con mayor conocimiento de SSIS te pueda ayudar.

    martes, 4 de abril de 2017 2:53
  • Gracias por tu respuesta Enrique.

    Ayer despues de poner el post continué investigando por google, y vi que hay un bucle en SSIS que es "Foreach ADO.NET Schema Rowset enumerator". En la infromación ponía que sirve para ver la información del esquema en una tabla (lo que no sé si incluye los nombres de los campos). Haría la prueba, pero realmente no sé como funciona ese bucle, al menos con al utilidad que yo le quiero dar, sobre todo porque no sé si servirá para eso. Además, en mi caso sería para obtener información de un excel, aunque el excel lo cargue por medio de OLE DB source...


    SarayAC

    martes, 4 de abril de 2017 6:22