Restaurar una Base de datos SQL Server 2008 a SQL Server 2005

SQL Server 21 septiembre, 2010

En este caso, en la oficina, mi lugar de trabajo, tengo la versión de SQL Server 2008 EE instalada y en mi casa la versión 2005. Cuando creé un backup (archivo .bak) de una base de datos utilizando el Management Studio Express 2008, este backup de base de datos, que tiene el nivel de compatibilidad SQL Server 2005 no lo pude restaurar en la version del SQL Server 2005. Y no es un problema del SQL Server 2008, sino que en ninguna versión de SQL Server, el backup creado con la nueva versión puede ser restaurado en una versión antigua. En el caso contrario si se puede, es decir, de una versión 2005 a una 2008 por dar un ejemplo.

Para resolver este inconveniente, opte por una de dos alternativas que encontré, de alternativas rápidas digo. Una es bajar el servicio de SQL Server y copiar los archivos de base de datos (no es posible copiar los archivos cuando esta el servicio activo) en algún medio extraible y luego “Adjuntarlo” en el servidor de mi casa. Dado que la base de datos tiene el “Nivel de compatibilidad” a SQL Server 2005 no tendría problemas para adjuntarlo. Pero como no era opción bajar el servicio del sql server en mi trabajo (Servidor Principal en la Empresa xD) opté por la segunda alternativa que es la de “Generar una secuencia de comandos” completa de dicha base de datos!. En el Management Studio Express 2008 esta tarea se llama “Generar scripts” y se puede ejecutar al hacer clic sobre la base de datos en particular, luego en Tareas > Generar Scripts.

Es una tarea que ya venia de versiones anteriores, pero en la versión 2008 del Management Studio Express en el proceso de generación del script tiene una propiedad que no la vi en la versión 2005, que es “Incluir datos en el script” y lo que permite es incluir todos los datos de las tablas agregadas en la generación del script, en mi caso de todas las tablas de la base de datos.

Esta propiedad la puse en “True” y “Script para versión de servidor” en “SQL Server 2005″ y algunas otras propiedades como incluir triggers, etc. Pues bien, luego en la version 2005 cree una nueva base de datos con el mismo nombre (al generar el script se puede activar la propiedad de crear una base de datos también), ejecute el script y listo no fue un proceso largo ni complicado y obtuve toda la base de datos.

26 Comentarios

  1. muy bueno !!
    Gracias

  2. Excelente, muchas gracias por publicar esta información, es de valiosa ayuda.

  3. Miguel Ramírez

    Muchas gracias! Gabriel y Matico por comentar.

  4. Muchas gracias!! me ha sido de mucha ayuda…

  5. Miguel Ramírez

    Un gusto poder ayudarte Arturo T, gracias por comentar!.

  6. Braulio Romero

    Realmente es un muy buen tip, muchas gracias por compartir.

  7. Miguel Ramírez

    Gracias Braulio a vos por visitar y comentar mi pequeño espacio web =)

  8. muchas gracias por tu artículo, es muy útil ya que Microsoft nos complica la vida para volver a versiones anteriores, tu nos ayudaste mucho!
    Saludos de Uruguay

  9. Miguel Ramírez

    Gracias! Pablo por comentar y es un placer poder haberte ayudado

  10. pero y la informacion ????,
    el generador te da los scripts para crear las tablas y relaciones, pero la informacion ke???

  11. Miguel Ramírez

    Hola Iban, y justamente la informacion que hablas, es lo que mencione ahi en el post, que tienes que marcar la opcion “Incluir datos en el script” como “TRUE” para que toda la información (los datos) almacenada se incluyan y no solo la creacion de tablas, vistas, procedimientos y demás.

    Saludos!, gracias por comentar el post

  12. Realmente excelente! ..fue de gran ayuda.
    Saludos

  13. Te agradezco tu ayuda

  14. Miguel Ramírez

    Gracias Johanna y GabrielKAK por comentar! y que les haya podido ayudar.

  15. gracias muy bien explicado…

  16. y en ingles sabes como esta la opcion de incluir la informacion de las tablas?

  17. Probando! si funciona sos un genio!

  18. yo seguí todos los pasos, y NO SIRVIO DE NADA, ademas trate de hacer otras cosas para solucionar el problema, ni aun asi , siempre me da el siguiente error:

    the operation could not be completed. espacio de almacenamiento insuficiente para procesar este comando

    este metodo no sirve incluso con la base de datos northwind 2008 a 2005. siempre habra mas de un proceso que falle.

  19. Muy bueno el dato, funciona perfecto, gracias.

  20. como hago para ejecutar el scripts que genere con el 2008 en la version 2005

  21. Gracias !

    Tu solución me dió la pista aunque en mi caso no funcionó la restauración.

    Resulta que mi base de datos tiene varios cientos de miles de registros. Al intentar cargar el script el sqlserver manager me daba error de espacio.

    Así que en el servidor de 2005 he usado el comando SQLCmd

    C:> sqlcmd -U sa -P mi_password S mi_servidor -d mi_base_de_datos -i mi_script_2008.sql

    en lo que escribo esto lleva cargados 53.000 registros !

    calculo que acabará en 3 o 4 horas

  22. Miguel Ramírez

    Que bueno que les haya servido a algunos, y a otros a lo mejor no! pero sería bueno que expongan los fallos asi vemos como contribuir a la solución.

    Gracias Calterras por la contribución.

  23. Es cierto. En el SSMS 2008 10.50.4000.0 no está la opción de incluir datos en el script.

  24. Hector Vargas

    muy buen tip, me pasaron esta info y mi pregunta es si este mismo proceso pudiera funcionar de SQL express 2012 a SQL express 2008?, alguien lo ha probado, aun no he tenido chance de probarlo pero espero hacerlo en estos días.

  25. en Sql Server 2008 R2 funciona poniendo la opción “Types of data to script” en el valor “Schema and Data”

Deja un comentario