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.

39 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”

  26. Fabuloso!

  27. Juan Carlos

    La union del scritp y la solucion de calterras ha funcionado genial. He importado 10 db con 280.000 registros.

    Un apunte en el codigo de calterras:Hay que poner – delante de S

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

    Gracias a todos.

  28. Buenas tardes, de antemano agradezco la información. Me sirvio pero no del todo, ya que NO ME RESTAURÓ EL DIAGRA, agradecería mucho si alguien puede aportar información al respecto sigo investigando como solucionarlo.

  29. Perdón quise decir QUE NO ME RESTAURÓ EL DIAGRAMA

  30. Buen día!
    Excelente el aporte porque al generar el script este puede ser restaurado en la versión vieja.
    Ahora quisiera preguntarles como puedo generar el script automaticamente con una tarea programada sin necesidad de usar el asistente?

    Gracias de antemano.

    Saludos.

  31. ESTIMADOS NECESITO URGENTE HACER RESTAURACION DE 2012 EN 2008 ALGUIEN ME PUEDE AYUDAR. GRACIAS

  32. me pueden ayudar hice una restauración, BD. en SQL SERVER para una aplicación pero la restaure marco error, pero se si se restauro todo ya al final quise entrar en la aplicación me marca este error

    Error de servidor en la aplicación ‘/eQDZpro_NOVAVIA’.

    Error del analizador
    Descripción: Error al analizar el recurso requerido para dar servicio a esta solicitud. Revise los detalles de error de análisis específicos y modifique el archivo de código fuente en consecuencia.

    Mensaje de error del analizador: No se pudo cargar el tipo ‘eqdz.Global_asax’.

    Error de código fuente:

    Línea 1:

    Archivo de origen: /eQDZpro_NOVAVIA/global.asax Línea: 1

    Información de versión: Versión de Microsoft .NET Framework:2.0.50727.8009; Versión ASP.NET:2.0.50727.8015

  33. alguien me puede ayudar urge porfavor..

    Saludos

  34. manuel hernandez herandez

    no será que debes probar nuevamente realizar la restauracion?
    que error te lanzo al momento de querer restaurar?.

  35. Astenia primaveril – Beba, duas vezes por dia, anterior das
    refeições, um copo de chuva com uma tirar de barro
    branca em suspensão (mexa a chuva com a colher e beba velozmente para
    ingerir só a barro que está em cessação). http://www2u.biglobe.ne.jp/~sinnin/asiato/fantasy/fantasy.cgi/vedezevanje-daniela.si%3C/index.html

  36. A mi si me sirvio de sqlexpress 2017 a sqlexpress 2005, pero generando como dijeron el script en 2 partes una con el esquema y otro con los datos.

    Al primero las tablas y objetos, elimine los comandos que cambian los parametro de la base de datos como en donde restaurarse, y eso solo deje la linea

    Create schema xxxx
    go
    y des pues la creacion de las tablas
    create table tabla1…;
    create table tabla2…;

    create table tablaN…;

    este lo ejecute en el SQL2005 y funciono sin ningun problema.

    El otro que pesaba 126mb, no podia ejecutarse en el SQL Management studio; Otro problema es que no tenia autentificacion por usuario (SA) sino autenticacion por windows, asi que utilice el comando sin los parametro -U y -P de la siguiente forma

    C:\Temp>Sqlcms -S Servidor\sqlexpress -D BaseDestino -i ArchivoScrip.sql

    Espero a alquien le sirva…

  37. Miguel Ramírez

    Gracias Ruben por tu aporte

  38. Daniel Loubet

    Otra Idea, si hacer lo del script pero solo la estructura con tablas grandes en script se tendría que dividir y eso es trabajoso, mejor solo generen el script de estructura generen la base sin datos en su servidor y luego pasen los datos con el de migración de datos que lo traen versiones mas extendidas que casi son todas lo traen de herramienta, o lo pueden bajar extra

Deja un comentario