Compartir a través de


Tutorial: Implementar cambios de refactorización de base de datos

Actualización: noviembre 2007

Cuando trabaja en Visual Studio Team System Database, modifica una representación sin conexión de la base de datos. Para confirmar los cambios en una base de datos activa, debe generar e implementar el proyecto de base de datos. El proceso es similar si va a implementar los cambios en una base de datos de desarrollo, una base de datos de prueba o una base de datos de producción.

Nota:

El proceso de implementación es similar para todos los tipos de bases de datos. Sin embargo, la persona que realiza la implementación podría ser diferente. Por ejemplo, en algunos entornos, sólo los administradores de bases de datos (DBA) tienen los permisos necesarios para realizar implementaciones en la base de datos de producción.

En un tutorial anterior, Tutorial: Cambiar el nombre de una columna de base de datos, creó un proyecto de base de datos, importó el esquema de la base de datos Northwind y cambió el nombre de una columna. En este tutorial, generará e implementará ese cambio.

Requisitos previos

Para completar este tutorial, necesitará:

Para generar el proyecto de base de datos

  1. Abra el proyecto de base de datos, denominado RefactorNorthwind, que creó en Tutorial: Cambiar el nombre de una columna de base de datos.

  2. En el menú Generar, haga clic en Generar solución.

  3. Pueden aparecer errores de compilación en la ventana Lista de errores. Por ejemplo, si un procedimiento almacenado selecciona una columna sin calificarla y se cambia el nombre de esa columna, el nombre no se actualiza en el procedimiento almacenado. Esta situación produce un error de compilación porque ahora el procedimiento almacenado selecciona un nombre de columna que no existe. Para evitar estos tipos de errores, asegúrese de que usa nombres de columna completos en el código Transact-SQL (T-SQL). Para corregir estos errores, debe actualizar manualmente el nombre de la columna. Por ejemplo, si cambia el nombre de columna de Orders.ShippedDate a Orders.ShippedDateAndTime, debe actualizar manualmente el procedimiento almacenado Sales by Year. Cambie el procedimiento almacenado de:

    create procedure "Sales by Year" 
        @Beginning_Date DateTime, @Ending_Date DateTime AS
    SELECT Orders.ShippedDateAndTime, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy, ShippedDate) AS Year
    FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
    WHERE Orders.ShippedDateAndTime Between @Beginning_Date And @Ending_Date
    

    A:

    create procedure "Sales by Year" 
        @Beginning_Date DateTime, @Ending_Date DateTime AS
    SELECT Orders.ShippedDateAndTime, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy, Orders.ShippedDateAndTime) AS Year
    FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
    WHERE Orders.ShippedDateAndTime Between @Beginning_Date And @Ending_Date
    

Para establecer las propiedades de implementación del proyecto

  1. En el Explorador de soluciones, haga clic en el proyecto de base de datos RefactorNorthwind.

  2. En el menú Proyecto, haga clic en Propiedades de RefactorNorthwind.

    Aparecerán las propiedades del proyecto.

  3. Haga clic en la ficha Generar.

  4. Haga clic en el botón marcado con ... para abrir el cuadro de diálogo Propiedades de la conexión.

  5. Establezca las propiedades de conexión para la base de datos con la que desea trabajar y, a continuación, haga clic en Aceptar.

    La cadena de conexión correcta se muestra en el cuadro Conexión de destino.

    Precaución:

    Debería probar esta implementación en una base de datos de prueba o en una base de datos de desarrollo. No se recomienda probarla en la base de datos de producción.

  6. Escriba el nombre de la base de datos de destino en el cuadro Nombre de la base de datos de destino.

    Precaución:

    De manera predeterminada, el cuadro de texto Nombre de la base de datos de destino muestra el nombre del proyecto de base de datos. Debe cambiar el valor de este campo si el nombre del proyecto de base de datos no es el nombre de la base de datos de destino.

  7. Active la casilla Generar instrucciones DROP para objetos que están en la base de datos de destino pero no en el proyecto de base de datos. Esta casilla es importante para cambiar el nombre de una tabla, por ejemplo. El script de implementación que se genera contendrá una instrucción DROP para la tabla con el nombre anterior y una instrucción CREATE TABLE para una tabla con el nuevo nombre. Puede desactivar la casilla Generar instrucciones DROP para objetos que están en la base de datos de destino pero no en el proyecto de base de datos para evitar que se quite la tabla con el nombre original. Este método es uno de los varios posibles para evitar la pérdida de datos en esta situación. Para obtener más información, vea Proteger los datos durante una operación de cambio de nombre.

  8. En el menú Archivo, haga clic en Guardar todo.

  9. En el menú Generar, haga clic en Generar solución.

    El script de implementación se genera de acuerdo con las propiedades de proyecto que acaba de establecer. El estado de la generación se muestra en la ventana Resultados; la última línea debe ser Generar: 1 correctos o actualizados.

Para implementar el proyecto de base de datos

  1. En el menú Archivo, haga clic en Abrir y, a continuación, haga clic en Archivo.

    Aparecerá el cuadro de diálogo Abrir archivo.

  2. En el cuadro Nombre de archivo, escriba la dirección siguiente y haga clic en Abrir.

    rutaDeAcceso\RefactorNorthwind\Sql\RefactoringDeploy.servidor.Northwind.sql

  3. En el script de implementación, busque las líneas siguientes:

    DROP TABLE [dbo].[Orders]

    y

    CREATE TABLE [dbo].[Orders]

    Estas líneas corresponden al cambio de refactorización que realizó en el tutorial anterior. En este punto, puede cambiar el script de implementación. Por ejemplo, puede eliminar instrucciones DROP que no desea implementar. Para obtener más información, vea Proteger los datos durante una operación de cambio de nombre. Para los propósitos de este tutorial, puede dejar el script de implementación tal como está.

    Precaución:

    Si cambia el script de implementación, deberá implementarlo manualmente, ejecutándolo desde el editor de T-SQL. No puede hacerlo mediante el comando Deploy.

  4. Cierre el script de implementación.

  5. En el menú Ver, haga clic en Explorador de servidores.

    Aparecerá la ventana Explorador de servidores y la base de datos de destino se muestra bajo Conexiones de datos. Si la base de datos de destino no aparece, abra el menú Herramientas y haga clic en Conectar a base de datos para agregar una conexión con la base de datos de destino.

  6. En el Explorador de servidores, expanda la base de datos de destino, expanda el nodo Tablas y expanda la tabla Orders.

    La columna ShippedDate aparece con el nombre original.

  7. En el Explorador de soluciones, haga clic en el proyecto de base de datos RefactorNorthwind.

  8. En el menú Generar, haga clic en Implementar. Como alternativa, en el Explorador de soluciones, haga clic con el botón secundario en el proyecto y, a continuación, haga clic en Implementar.

    Precaución:

    Debería ejecutar esta implementación en una base de datos de prueba o en una base de datos de desarrollo. No se recomienda ejecutarla en la base de datos de producción.

    El proyecto de base de datos se implementa en la base de datos de destino mediante el script de implementación. El estado de la implementación se muestra en la ventana Resultados; la última línea debe ser Implementación correcta.

  9. En el Explorador de servidores, haga clic con el botón secundario en el nodo Tablas y, a continuación, haga clic en Actualizar.

    La columna ShippedDate aparece con el nombre nuevo ShippedDateAndTime.

Vea también

Conceptos

Información general acerca de la configuración del proyecto de base de datos

Otros recursos

Refactorizar bases de datos

Generar e implementar esquemas de base de datos