En algunas ocasiones podemos necesitar transformar una base de datos completa de una versión superior a una inferior.
Si en la base de datos por ejemplo 2008 no se le han implementado features exclusivas de esa versión la conversión debería ser mas natural y simple que si tenemos features nuevas (lo cual deberíamos hacer algún proceso de reingeniería)
Supongamos que tenemos una base en un SQL 2008 a la cual no le aplicamos nuevas funcionalidades y se nos da por pasarla hacia atrás, uno lo primero que intentaría hacer es realizar un backup y luego un restore por ejemplo en el 2000 o 2005, si hacen esto recibirán un error al hacer el restore (Error 3169: The Backed-up database has on-disk structure version ….)
, este error se debe a que al estar en una version superior el formato de archivos es distinto por mas que la base este en un modo de compatibilidad inferior, supongamos que esta base de datos esta en un 2008 con un modo de compatibilidad 2000.
Entonces como hacemos esta tarea?
Pues bien, hay varias técnicas, una de ellas es armar primero los Script DDL de la base (tablas, índices, vistas, Stores, etc.) y luego por un método de exportación e importación de datos pasar la data.
Este método requiere de varios pasos y además de cierta complejidad.
En este post veremos como hacer esto mismo con un solo Script usando el Management Studio 2008.
- Entre a su SSMS (SQL Server Management Studio) de 2008
- Seleccione la base de datos que quiere pasar
- Pulse botón alterno del mouse sobre ella, vaya a Task (o tareas) y luego a Generate Script.(Al hacer esto le aparecerá el siguiente Wizard).

- Pulse el Checkbox "Script all Object in the selected database”, esto nos indica que se hará script de todos los objetos de esa base de datos y pulse el botón Next
- En la siguiente pantalla observara las distintas opciones para generar el Script, y es aquí donde debemos concentrarnos aun mas y poner lo siguiente en cada opción
- Script for SQL Server Version = SQL 2000 0 2005 dependiendo a que version queremos ir
- Script Data = True
- Script Foreign Key = True
- Script Indexes = True
- Script Primary Keys = True
- Script Triggers = True
- Script Unique Key = True
- Script Database Create = True
Con estas opciones de mínima ya estamos en condiciones de pasar al próximo paso del asistente en el cual indicaremos donde queremos guardar el script, por ejemplo yo seleccionare hacerlo en el disco C y con el nombre de Script2000.SQL.
Luego de hacer esto debemos culminar con el asistente el cual generara los Script con los datos incluidos para la version de SQL que le hemos seleccionado.
Si no se encuentra alguna compatibilidad, por ejemplo en la base tenemos cosas propias de 2008 el asistente no las convertirá y marcara un error en el paso indicando donde tenemos el problema, de sucedernos esto deberíamos hacer una reingeniería, por ejemplo cambiar el tipo de dato.
En mi caso se genero correctamente el Script ya que la base de datos que tenia en 2008 era un restore de una de 2000 pero luego no la podía pasar a 2000 con Backup y restore por el cambios de formato comentado en el inicio del post.
Bueno ahora lo que nos queda es abrir nuestro Query Analizer y ejecutar el Script y tendremos creada en 2000 nuevamente la base con sus estructuras y datos también.