Cómo cambiar el nombre de un objeto sin romper su base de datos SQL

Muy frecuentemente, el diseño inicial de la base de datos ya no concuerda con el criterio actual y los requerimientos. Por tanto es necesario alinearse periódicamente a lo que nuestras son necesidades y estándares actuales. Cuando se trabaja con una base de datos grande, cualquier idea de cambiar el nombre de uno o más objetos SQL puede ser un desafío real.

Cambiar un nombre de objeto es una operación simple y podría ser hecha fácilmente usando el procedimiento almacenado del sistema SP_RENAME o usando las sentencias RENAME y ALTER… RENAME para índices y desencadenadores.

El problema es el hecho de que este cambio no es propagado a otros objetos que dependen del objeto renombrado – ellos se invalidan y retornan un error cuando se los usa. Para evitar esto, usted tiene que modificar todos los objetos que dependen en el que usted cambió.

Cómo encontrar los objetos que dependen en el objeto renombrado

SQL Server Management Studio puede rastrear las dependencias y mostrar los objetos que dependen de objeto seleccionado a través de su opción View Dependencies.

  1. Use SQL Server Management Studio, View dependencies para los objetos que desea renombrar
  2. Actualice el script DDL para el objeto dependiente con el nuevo nombre del objeto renombrado
  3. Repita los pasos #1 y #2 para todos los objetos dependientes, individualmente
  4. Si usted desea renombrar más de 1 objeto, repita los pasos del 1 al 3

Para grandes números de objetos esto puede tomar bastante tiempo y como todo proceso manual, es proclive a errores.

Cómo renombrar un objeto sin demasiados problemas

ApexSQL Search es un complemento de SQL Server Management Studio y Visual Studio capaz de renombrar objetos de forma inteligente, como tablas, vistas, procedimientos y funciones, así como columnas de tablas/vistas y parámetros de funciones/procedimientos sin romper las dependencias de la base de datos.

Para renombrar a un objeto de forma inteligente:

  1. Abra SQL Server Management Studio or Visual Studio
  2. En el explorador Explorer/Server, encuentre el objeto que desea renombrar
  3. Haga clic derecho en el objeto y seleccione la opción Safe rename en el menú ApexSQL Search

  4. En la caja de texto New Name del diálogo Safe rename, ingrese un nuevo nombre. ApexSQL Search verifica que el nombre no esté en uso. Si el nombre no es válido, un signo de aviso rojo se mostrará al lado de la caja de texto New name:

  5. Haga clic en el botón Generate preview:

    La sección Preview muestra información resumida:

    • La pestaña Generated script muestra un script SQL completo del proceso de renombramiento
    • La pestaña Warnings muestra cualquier problema potencia y las razones por las que el script podría fallar
    • La pestaña Sequence muestra la secuencia de las acciones que el script realizará
    • La pestaña Dependencies muestra una lista de los objetos que necesitan ser alterados para mantener todas las dependencias

  6. Si usted desea modificar el script antes de ejecutarlo, haga clic en el botón Open. El script generado será abierto en editor de Consultas de SQL Server Management Studio / editor Review de Visual Studio, haga modificaciones si es necesario y ejecútelo haciendo clic en la opción Execute, o grábelo a un archivo.
  7. Para ejecutar el script como está, haga clic en el botón Rename

El renombrar un objeto puede ser fácil. Usted no tiene que analizar toda la base de datos y buscar las dependencias por sí sólo. Use la herramienta de base de datos gratis ApexSQl Search para que lo haga por usted. Encontrará todos los objetos dependientes, los renombrará y los eliminará-creará cuando sea necesario, para evitar romper los scripts.

Traductor: Daniel Calbimonte

noviembre 14, 2015