none
Como agregar columnas dinamicas a una tabla.? RRS feed

  • Pregunta

  • Muy buenas tardes señores

    Tengo una tabla temporal el cual almacena columnas variables porque estoy utilizando un pivot ejemplo a veces almacena 4,5 0 8 columnas.  ahora lo que quiero es  insertar o añedir  esas columnas de la tabla temporal  a otra tabla que tengo. si alguien sabe ..por favor? 

    viernes, 8 de agosto de 2014 17:17

Respuestas

Todas las respuestas

  • No se ha entendido nada bien qué es lo que pretendes hacer con esas columnas. ¿Podrías poner un ejemplo de qué es lo que tienes, y cómo quieres que quede?
    viernes, 8 de agosto de 2014 19:12
  • si claro, tengo una temporal donde almaceno columnas variables esto lo hice con un pivot, ejemplo  en la tabla temporal puedo tener las siguientes colomnas (1,2,3)  y a veces (1,2,3,4,5)

    esas columnas las tengo que agregar a otra tabla original que tengo. con sus datos.

    ejemplo si en la tabla original tengo la columnas A,B,C  ahora me debe quedar asi (A, B, C, 1,2, 3) o A, B, C,1,2,3,4) 

    no lo puedo hacer con el innerjoin pues en la tabla temporal almaceno datos variables.

    viernes, 8 de agosto de 2014 19:40
  • Para conseguir el resultado habría que hacerlo en dos pasos: primero un "alter table" para modificar la tabla original añadiéndole las nuevas columnas, y después un update...from... para llenarlas con los datos de la tabla temporal. Y lógicamente habrá que saber cuál es la columa clave en la tabla original y en la temporal, para "emparejar" las filas y decidir cuál de las filas de la tabla temporal tiene que ir a cada fila de la tabla original.

    En resumidas, cuentas, va a quedar muy complicado, y seguramente requerirá un bucle con un cursor sobre las tablas de metadatos generando SQL dinámico para el "alter table".

    Yo procuraría hacerlo al revés: al crear la tabla temporal, crearla con las columnas de la tabla original más las columnas nuevas que salgan del Pivot. Y a partir de ahí hacer las consultas sobre la tabla temporal. Si es necesario persistir los datos, se puede borrar la tabla original y recrearla desde la temporal con un "select...into".

    viernes, 8 de agosto de 2014 19:59
  • Gracias. no lo hago como ud lo dice porque tengo dos tablas temporales  las que le tengo que agregar a la tabla original.

    estoy deacuer con la primera solucion, he intentado hacerlo pero no he podido con el codigo, el bucle.

    viernes, 8 de agosto de 2014 20:21
  • Es muy difícil dar una respuesta exacta con la información que has proporcionado. Para darte una buena solución sería de gran ayuda que nos pusieras el script de creación de las tablas temporales, de la tabla final y del resultado esperado. También estaría bien que pusieras el código que llevas hecho hasta ahora y que nos expliques con detalle y con ejemplos  el tema de las columnas dinámicas.


    EntityLite: A Lightweight, Database First, Micro ORM

    lunes, 11 de agosto de 2014 7:58