¿Cuál es el enfoque más fácil y confiable para cambiar el nombre de las tablas y columnas de la base de datos en SQL Server 2008 r2? Hemos finalizado el desarrollo y, por alguna razón, debemos cambiar el nombre de algunas tablas y algunas columnas.
¿Usar sinónimos es la buena manera de hacerlo? ¿Para qué dificultades debemos estar preparados? ¿Ayuda a cambiar el nombre de las columnas con gracia también?
Tenemos muchos scripts relacionados con estas tablas y los desarrolladores de .net también hacen referencia a ellos en la aplicación.
sql-server-2008-r2
Cielo
fuente
fuente
Respuestas:
Creo que el enfoque depende de si las aplicaciones están en vivo o si todavía está probando.
Para las tablas, el enfoque más seguro es crear un sinónimo con el nuevo nombre. De esta manera, puede cambiar las aplicaciones una por una (o incluso una referencia a la vez), sin tener que cambiarlas todas a la vez. No tiene que descartar el sinónimo y cambiar el nombre de la tabla hasta que esté seguro de tener todos los cambios en su lugar.
Para las columnas, es un poco más complicado. En su lugar, puede crear sinónimos que apunten a una vista, pero no todas las vistas serán necesariamente actualizables dependiendo de la tabla base. Como un simple ejemplo:
Luego, como anteriormente, cuando haya cambiado todas las referencias a columnas y al nuevo nombre de la tabla, simplemente:
Si la aplicación no está activa y aún se está sometiendo a pruebas, simplemente cambie el nombre de las columnas y arregle lo que se rompe después de una búsqueda global y reemplace (o refactorice inteligente usando SSDT, RedGate, etc.) a través del código / procedimientos de la aplicación, etc.
Si la aplicación está en vivo, deberá avanzar un poco más cautelosamente.
fuente
Bueno, hay muchas dificultades con las que puede encontrarse al cambiar el nombre de tablas y columnas. Cualquier otro código de aplicación o SQL que los llame tendrá que cambiar su nombre para que coincida o no funcionará. Redgate hace algunas herramientas bastante buenas que pueden pasar y hacer todos los cambios en las vistas / funciones / sprocs SQL dependientes. El mayor consejo que puedo darle es hacer primero estos cambios en un entorno DEV y TEST TEST TEST para asegurarse de que ha reparado el código en todas partes.
fuente