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:
- Abrir el Management Studio 2008 donde está la BD que queremos exportar.
- Darle click derecho a la BD y seleccionar Tasks->Generate Scripts.
- Darle Next al diálogo inicial.
- 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.
- 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'.
- 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'.
- 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
- Al terminar, abrir el .sql y revisar líneas como éstas:
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.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
-
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
- 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.
me sale que el tipo "date" del 2008 es incompatible con el "2005", ¿faltará algún otro ajuste en el asistente?
ReplyDeletePuede 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