none
de un ADO.NET Source a un OLE DB Destination como puedo adicionar una nueva columna RRS feed

  • Pregunta

  • Hola todos 

    como siempre les mesiono soy nueva en SSIS

    tengo un ADO NET  Source con un OLE DB Destination pero quiero aparte de los campos q me trae el Data Flow Source ingresar otros ejemplo un NEWID() y no tengo ni idea de como hacerlo.

    Como hago para de diferentes fuentes hacer un "join" para q me lleme un destino

    Como se hace para hacer transformaciones a los datos,   ... directamente en el ADO NET Source como se hace????


    quedo pendiente de cualquier recomendación 

    jueves, 24 de octubre de 2013 18:35

Respuestas

  • Hola,

    Lo primero a comentar es que secundo la recomendación de Alberto: Documentate. La referencia del libro que te ha dado es muy util y gratuita.

    Entrando en detalle de lo que preguntas:

    Para agregar nuevos campos al dataflow lo más comun es utilizar un componente de columna derivada, que permite añadir nuevas columnas basadas en propias columnas del dataflow realizando transformaciones, pero tambien existen componentes como el Lookup que utilizando alguna clave te permite añadir columnas de un dataset. Otra de las opciones es crear las columnas en la consulta de origen. Para añadir un GUID en destino tienes dos opciones (al menos): Una generar una consulta de origen que incluya un campo utilizando la función NewID(), la otra es que en la tabla destino tengas una columna cuyo valor por defecto sea un NewID().

    Por otro lado, para hacer join... puedes hacerlo directamente en la consulta de origen select ... from x left|inner join y on .... que ya traería los datos combinados del motor relacional, o hacerlo en el propio data flow con el componente merge join. Este componente exige que ambas entradas (pipelines) estén ordenadas y que los tipos  de datos sean acordes. Es decir si la primera columna ordenada es un smallint (DT_I2 en SSIS) no puedes hacer join con una columna de tipo int (DT_I4 en SSIS). El componente lookup tambien permite hacer operaciones de este tipo.

    Un saludo.


    Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky

    • Marcado como respuesta yualgata lunes, 28 de octubre de 2013 18:01
    domingo, 27 de octubre de 2013 16:23

Todas las respuestas

  • Hola.

    Realizas tres preguntas que no tienen mucho que ver, que son de iniciación. ¿Has realizado los tutoriales?

    Te recomiendo también otra lectura, la del capítulo de SSIS de este libro (es gratis):

    http://blogs.solidq.com/bicorner/post.aspx?id=71&title=libro+microsoft+business+intelligence%3A+vea+el+cubo+medio+lleno

    Si después de eso sigues teniendo las dudas, nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    domingo, 27 de octubre de 2013 9:00
    Moderador
  • Hola,

    Lo primero a comentar es que secundo la recomendación de Alberto: Documentate. La referencia del libro que te ha dado es muy util y gratuita.

    Entrando en detalle de lo que preguntas:

    Para agregar nuevos campos al dataflow lo más comun es utilizar un componente de columna derivada, que permite añadir nuevas columnas basadas en propias columnas del dataflow realizando transformaciones, pero tambien existen componentes como el Lookup que utilizando alguna clave te permite añadir columnas de un dataset. Otra de las opciones es crear las columnas en la consulta de origen. Para añadir un GUID en destino tienes dos opciones (al menos): Una generar una consulta de origen que incluya un campo utilizando la función NewID(), la otra es que en la tabla destino tengas una columna cuyo valor por defecto sea un NewID().

    Por otro lado, para hacer join... puedes hacerlo directamente en la consulta de origen select ... from x left|inner join y on .... que ya traería los datos combinados del motor relacional, o hacerlo en el propio data flow con el componente merge join. Este componente exige que ambas entradas (pipelines) estén ordenadas y que los tipos  de datos sean acordes. Es decir si la primera columna ordenada es un smallint (DT_I2 en SSIS) no puedes hacer join con una columna de tipo int (DT_I4 en SSIS). El componente lookup tambien permite hacer operaciones de este tipo.

    Un saludo.


    Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky

    • Marcado como respuesta yualgata lunes, 28 de octubre de 2013 18:01
    domingo, 27 de octubre de 2013 16:23