@
leyendo...
Tecnología

Llevar una base de datos SQL Server 2008 R2 hacia SQL Server 2008

He escuchado y leído en algunos foros, que hay ocasiones en las cuales es necesario pasar una base de datos que se llevó a SQL Server 2008 R2 y que ahora se requiere en SQL Server 2008.

Este paso no se puede hacer, aunque el contrario si, ya que SQL Server mantiene unos números de versión interna que para el caso de SQL Server 2008 es 655 y para el caso de SQL Server 2008 R2 es 661. La restricción se da simplemente porque una versión anterior desconoce sobre los cambios de formato que se introdujeron en la nueva versión. Mayor información sobre las versiones en este post en el blog de Dan Guzman.

De hecho, si ejecutan el siguiente query en SQL Server 2008 R2, les arroja la versión de la cual hablamos, que es 661:

SELECT DATABASEPROPERTYEX('AdventureWorks2008R2', 'Version');

Con lo anterior, reitero, el escenario planteado de restaurar o incluso hacer ATTACH de una base de datos en SQL Server 2008 R2 hacia SQL Server 2008, no es posible. Una solución es usar el asistente de generación de scripts de SQL Server 2008 R2. Para usarlo, seguimos estos pasos:

1) Ubicarse en la base de datos que se quiere pasar a SQL Server 2008, en este caso la BD de ejemplo AdventureWorks2008R2, dar clic derecho y seleccionar “Tasks” y luego “Generate Scripts”.

Task: Generate Script

2) Se presenta la siguiente ventana:

Generate Scripts 1

3) Presionar Next para que aparezca la siguiente ventana:

Generate Scripts 2

3) Validar que está seleccionada la opción resaltada y presionar Next. Aparece la siguiente ventana:

Generate Scripts 3

4) Revisar la ruta del archivo a guardar y seleccionar “Single File”. Tal vez el archivo quede muy grande y haya que volver a ejecutar el asistente y generar archivos por objeto, pero por ahora, un único archivo.

5) Presionar el botón de comando “Advanced”. En la ventana que sale, validar que por lo menos, se dejan configuradas las siguientes opciones:

Generate Scripts 4

6) Lo del COLLATION o intercalación es importante sobre todo si ésta no es la misma en alguno de los dos servidores.

7) Presionar OK y luego Next. Debe verse de esta manera:

Generate Scripts 5

8) También revisen que están generando scripts para el esquema y la base de datos.

9) Presionar Next para que inicie el proceso. Este tarda varios minutos, dependiendo de la cantidad de objetos y de datos.

10) Al final del proceso, la ventana del asistente debe verse así:

Generate Scripts 6

11) Recuerden guardar el reporte en donde indicaron que guardase el script T-SQL y presionen Finish.

12) Abran el script y el reporte para revisar que se hizo.

13) En mi caso, el script quedó de este tamaño y no abrió en SQL Server Management Studio:

T-SQL Script file size

14) No tengo conocimiento de un límite, aunque he abierto archivos de 100K en la ventana de query del SSMS sin problemas.

15) Así que una recomendación es abrirlo en Wordpad o en Notepad++ y revisar a ver que cosas se van copiando y pegando en el editor de SSMS. Recuerden los temas de llaves foráneas, orden de inserción y demás aspectos a tener en cuenta. De nuevo, una alternativa puede ser generar archivos por objeto, pero entonces hay que tener presente que dependiendo de la cantidad de objetos del esquema, se pueden tener varios archivos e incluso algunos de éstos, dependiendo de la cantidad de datos, puede ser también muy grande.

Otra posibilidad es usar SQLCMD y darle como parámetro el archivo generado…

Espero que esta alternativa les ayude para estos escenarios, que de hecho puede incluso servirles para llevar una base de datos en SQL Server 2008 R2 hacia SQL Server 2005 o SQL Server 2000.

Saludos.

Categorías

Archivos

A %d blogueros les gusta esto: