none
Integrar varias bases de datos en una sola. RRS feed

  • Pregunta

    • Hola. Un saludo a todos.
    • Tengo varias bases de datos con la misma estructura, el mismo número de tablas y los mismos campos.
    • Cada una de las tablas se lleno con datos a través de un formulario en cada una de las bases.
    • Lo que necesitó ahora es integrar con todas esas bases de datos una sola que me presente la información de todos los registros en un sólo formulario.
    • Lo que soluciona mi problema es agregar los registros de cada una de las tablas de las diferentes bases a una nueva tabla, sin embargo esto no es posible, ya que todas las tablas inician con una clave numérica que inicia en 1 y al tratar de agregarlas a la nueva tabla me dice que no es posible porque no se permiten duplicados. 
    • Puedo cambiar la propiedad para permitir duplicados sin embargo otros datos que se relacionan con esta clave se alteran por existir dos registros con igual número.
    • Es posible dar solución a mi problema?
    • Como podría cambiar el número de clave de todos los registros sin que se altere la información para poder agregar los datos de una base a otra sin que haya duplicados?

    De antemano gracias.


    hercorher

    lunes, 5 de octubre de 2015 3:24

Todas las respuestas

  • Hola Hercorher,

    ¿Qué gestor de base de datos ocupas?. Hay una manera fácil de hacer lo que requieres pero va a depender del caso en particular que tienes, no das mayor detalle de cuantas tablas quieres mostrar en un formulario y si todas están relacionadas entre sí. 

    Imaginemos que tienes un formulario de ventas donde quieres subir las tablas CabeceraVentas y DetalleVentas, un mecanismo simple de hacer ello es combinar las tablas en una vista, tu aplicación leerá la vista como si de una tabla se tratase.

    CREATE VIEW Ventas
    AS
            SELECT * FROM BD1.dbo.CabeceraVentas
            UNION ALL
            SELECT * FROM BD2.dbo.CabeceraVentas
            UNION ALL
            SELECT * FROM BD3.dbo.CabeceraVentas
            UNION ALL
            SELECT * FROM BD4.dbo.CabeceraVentas
            UNION ALL
            SELECT * FROM BD5.dbo.CabeceraVentas
    

    Podrías crear un campo adicional para el correlativo que en lo personal le encuentro poco sentido.

    lunes, 5 de octubre de 2015 4:18
  • Hola

    Ese es el problema de usar autonuméricos. Deberías crearte un nuevo campo, en las tablas de cada una de las bbdd, y generarlos manualmente, de tal forma que cada genere un valor único para la unificación. Obiviamente, tendrías que crear ese valor en cada tabla relacionada. ¡Y para la próxima olvídate de los autonuméricos! ;-)

    Salu2,


    José Mª Fueyo [MS MVP Access]

    miércoles, 7 de octubre de 2015 9:17