SQL: Exportar una Base de Datos de SQL Server 2008 a SQL Server 2005

Dado que la versión 2008 usa un formato diferente para los .bak, un backup hecho en la versión 2008 no puede ser restaurado desde la 2005. La solución es crear, desde 2008, un Script cuyo target sea la versión 2005 y ejecutar ese script en la instancia del 2005. Para hacerlo:

  1. Abrir el Management Studio 2008 donde está la BD que queremos exportar.
  2. Darle click derecho a la BD y seleccionar Tasks->Generate Scripts.
  3. Darle Next al diálogo inicial.
  4. Marcar la checkbox que dice "Script all objects in the selected database" antes de darle Next al diálogo siguiente. Esto garantiza que no sólo se exporte el esquema de tablas sino también su contenido.
  5. En el próximo diálogo, hay varias opciones. Las que nos interesa setear antes de darle Next son las siguientes:
    • Script for Server Version : SQL Server 2005.
    • Script Data : True.
    • Si la base de datos a importar aún no existe en el server 2005, hay que poner 'Script Database Create' en 'True'.
  6. Elegir 'Script to File' para que nos guarde el script en un archivo .sql cuyo path podemos setear en el text box pertinente. Seleccionar también la opción 'Single file' para que ese archivo sea único. Darle click a 'Next'.
  7. En el diálogo siguiente podemos ver un resumen de lo que hace el script para revisar si está todo coherente antes de darle Finish
  8. Al terminar, abrir el .sql y revisar líneas como éstas:
    CREATE DATABASE [Northwind] ON PRIMARY
    
    (NAME = N'Northwind', FILENAME =
    N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATAorthwnd.mdf' ,
    SIZE = 3328KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
    
    LOG ON
    
    (NAME = N'Northwind_log', FILENAME =
    N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATAorthwnd.ldf' ,
    SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
    
    GO
    Las mismas probablemente requieran que los paths sean corregidos para concordar con los de la máquina donde vamos a correr el script. Hacer esas correcciones.
  9. Puede que también sea necesario comentar líneas como éstas. En mi caso, no fue necesario.
    --EXEC sys.sp_db_vardecimal_storage_format N'Northwind', N'ON'
    --GO
  10. Por último, copiar el .sql a la máquina donde está el server 2005, abrir ese archivo con el Management Studio 2005 (File->Open...) y darle al botón Execute. En mi caso, tiró algunos errores al intentar crear usuarios, pero no me importó porque los usuarios necesarios ya existían. Además, no hubo rollback; pese a los errores, trajo todas las tablas y su contenido sin problemas.
Fuente

Comments

  1. me sale que el tipo "date" del 2008 es incompatible con el "2005", ¿faltará algún otro ajuste en el asistente?

    ReplyDelete
  2. Puede ser, no me había topado con ese error. Yo que vos primero miraría detalladamente las opciones del asistente, y si no hay ninguna que ayude, de última podés retocar el script a mano

    ReplyDelete

Post a Comment

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x