sábado, abril 07, 2007

SQL Management Studio genera scripts incompatibles con SQL2000

El día de hoy visitando a un cliente, estaba listo para crear una base de datos que yo traía en mi laptop en el servidor de mi cliente; El servidor es un SQL Server 2000 y el que tiene instalado mi laptop es SQL Server 2005. Mi opción de copiar la estructura de la base de datos fue generando el script tanto para las tablas como los demás objetos de la misma, y aunque el SQL Management Studio tiene una opción para copiar una base de datos entre servidores, no me fue posible utilizarla, ya que solo funciona teniendo un SQL Server 2005 como destino, lo cual no era mi caso.

Al generar el script me asegure de utilizar la opción "Generar script compatibles con SQL Server 2000" estaba activada; al finalizar copie el script al servidor SQL 2000 y procedí a ejecutarlo, pero fallo rotundamente con una gran numero de errores, después de revisarlo una y otra vez me dí cuenta que el script era valido para SQL 2005 pero no SQL 2000, aun y cuando al generarlo active la opción para que fuera compatible.

Después de buscar como solucionar el problema, me encontré con este post donde al parecer Microsoft ya tiene conocimiento de este problema, pero aun no hay solución.

Así que si alguien mas esta desarrollando en SQL 2005 y desea después llevar ese desarrollo a SQL 2000, cuidado, porque los scripts para recrear la base de datos no van funcionar, hay que hacerle algunos cambios de forma manual para que función, los cambios están descritos en el post que mencione anteriormente.

Hay otra forma de copiar bases de datos, la cual consiste en hacer un "deattach" de la base de datos, copiar los datafiles al nuevo servidor y después realizar un "attach", pero esto funciona haciéndolo entre servidores de la misma versión o desde servidores de versiones anteriores a versiones nuevas - por ejemplo funciona de SQL 2000 a SQL 2005 -, no he probado el procedimiento de SQL 2005 a SQL 2000, peor tengo dudas de que sea posible.

No hay comentarios.: