you una the that tabla saving recreated prevent permitted not modificar made have following error enable dropped diseƱo changes allow sql-server-2005 sql-server-2008 change-management

sql server 2005 - una - SQL Server 2008 Auto Generate Change Scripts Legacy Problem



sql server error prevent saving changes that require the table to be recreated (3)

Activamos "Herramientas ==> Opciones ==> Diseñadores ==> Diseñadores de tablas y bases de datos ==> Generar automáticamente scripts de cambios" en nuestro SQL Server Management Studio (SSMS). Al cambiar nuestro esquema de base de datos, guardamos el script y, gracias a las herramientas de migración de DB que tenemos instaladas en todas las máquinas que ejecutan nuestras aplicaciones, podemos sincronizar el esquema durante la próxima actualización de la versión de software.

Recientemente cambiamos nuestras copias de desarrollo y algunos servidores de producción a SQL Server 2008. Sin embargo, todavía tenemos algunas docenas de SQL Server 2005 ejecutando nuestro software en la naturaleza. No estamos planeando actualizar estos por un tiempo.

El problema es simple Los scripts generados por SSMS simplemente no siempre funcionan con SQL Server 2005. SMSS está agregando metadatos adicionales a los comandos (en relación con la escalada de bloqueo, por ejemplo). Para hacer nuestros scripts con 2005, tenemos que eliminar manualmente la información adicional; de lo contrario, los scripts no se ejecutarán.

¿Hay alguna forma de configurar SSMS para generar scripts que sean compatibles con SQL Server 2005? ¿Hay herramientas que podrían eliminar el SQL adicional de forma automática o, al menos, dejarnos saber qué archivos son problemáticos?


En SQL Server Management Studio 2008 vaya a Herramientas -> Opciones -> Explorador de objetos de SQL Server -> Creación de secuencias de comandos y seleccione "Secuencia de comandos para la versión del servidor" y cámbielo a SQL Server 2005.


Todavía no he utilizado el estudio de gestión 2008, pero en todas las versiones anteriores ha podido establecer las secuencias de comandos en una versión específica de SQL Server en alguna de las opciones.

Tengo el estudio de administración 2005 configurado para generar 2000 scripts compatibles por razones similares.


La solución recomendada para cambiar las opciones parece ser corerct sin embargo, todavía genera ALTER TABLE SET (LOCK_ESCALATION = TABLE) en mi base de datos (incluso puse en modo compatibilidad 90)