none
pasar registros de una BD a Otra SQL server 2008 RRS feed

  • Pregunta

  • Buenas tardes ps tengo el siguiente problema.

    Tengo la BD de producción, la cual tuvo problemas y se perdió información, por otra parte esta el respaldo del día que se perdió la información, lo quiero es pasar los clientes de la BD del respaldo a la de producción,  pero seguramente actualmente en la BD de producción ya se dieron de alta mas clientes lo cual los clientes que pase del respaldo a  producción quedarán con ID´s distintos, y hay operaciones  que tengo que pasar igual del respaldo al de producción pero tienen relación con el id de cliente.

    ¿Como me recomiendan hacer esto?

    De antemano muchas gracias.


    Hugo Gil

    jueves, 16 de abril de 2015 16:27

Respuestas

  • A mi pasó algo parecido, lo que hice fué subir el backup en otra base de datos (mismo server) cuidando que la info no fuera a dar al repositorio original (por defecto el respaldo lo monta en su base de origen), pero el proceso de recover tiene opciones para hacerlo en otra base.

    Luego me traje la info con un insert select filtrando los datos manualmente en el select.

    viernes, 17 de abril de 2015 0:34

Todas las respuestas

  • Hugo,

    Buenas tardes, como estas? armando un poco el mapa de la solucion... que tipos de backups tenes hechos? full diferencias log??? Para empezar una vez que sepamos esto lo que te recomendaria seria restorear el backup con la informacion completa en otro servidor hasta el momento del crash.... con respecto a los ID's.... que tenes en el campo?? identity?para ver como resolvemos esto primero en algun momento vas a tener que frenar produccion para ordenar tus datos.... si tenes un identity podes restorear la base original (sin perdida de informacion) chequear que id de identity tenes y de ahi comenzas a actualizarlo(DBCC CHECKIDENT - > documentacion https://msdn.microsoft.com/es-AR/library/ms176057.aspx) lo haces con toda tu base con los nuevos ingresos y volves a restorearla ordenada.... todo esto si queres volver a tener la secuencia anterior sino tenes que hacer el restore en otro server, consultar que ids no estan y actualizar tu base(export import).. de esta forma no vas a tener los id's ordenados pero por lo menos recuperas la informacion.

    Espero te sirva!

    saludos!! 

    jueves, 16 de abril de 2015 17:37
  • Saludos

    Si restauras la base de datos sobre otra base ya existente se perdera la base de datos, una opcion seria tener dos versiones de la base de datos , (que restaures sin sobre escribir).

    https://msdn.microsoft.com/es-es/library/ms187495.aspx?f=255&MSPPError=-2147217396

    jueves, 16 de abril de 2015 22:54
  • Saludos Hugo

    Si tienes Acceso a DBCompare de red-gate o alguna herramienta similar te puede ayudar a solucionar esto, sino busca usar la sentencia merge (conocida como upsert en otros motores) que te hara un update insert o sea si el registro existe le hara update, sino existe lo insertara.

    Pero como dice Gonzalo, danos más datos y con gusto te ayudamos.

    jueves, 16 de abril de 2015 23:38
  • A mi pasó algo parecido, lo que hice fué subir el backup en otra base de datos (mismo server) cuidando que la info no fuera a dar al repositorio original (por defecto el respaldo lo monta en su base de origen), pero el proceso de recover tiene opciones para hacerlo en otra base.

    Luego me traje la info con un insert select filtrando los datos manualmente en el select.

    viernes, 17 de abril de 2015 0:34
  • Gracias por a todos por la ayuda, en efecto monte la base del respaldo en la de producción y cree un temporal con la misma estructura de la tabla donde esta la operación, despues fui creando los clientes en un while y fui actualizando los id nuevos en mi temporal, despues en mi tabla temporal, lo inserte en el servidor ya con los nuevos datos con el insert select.

    Saludos.


    Hugo Gil

    viernes, 17 de abril de 2015 14:56