Compartir a través de


Tutorial: Modificar objetos de base de datos

En este tutorial, utilizará el editor de Transact-SQL para modificar las definiciones de varios objetos de base de datos en el proyecto de base de datos. El proceso consistirá en:

  • Abrir una solución que contenga un proyecto de base de datos.

  • Agregar una columna a una tabla. Su cliente desea realizar el seguimiento del año en el que se presentaron los productos. Para realizar este paso, agregará una columna DateAdded a la tabla Product del esquema Production.

  • Agregar una tabla, Purchasing.ShipperRating, para efectuar un seguimiento de la valoración por parte del cliente de la calidad de servicio de los transportistas que controlan sus pedidos. También agregará relaciones de clave externa y un índice.

Requisitos previos

En este tutorial se da por supuesto que ha realizado por completo los pasos indicados en Tutorial: Agregar un esquema de base de datos al sistema de control de versiones. Como resultado de ese tutorial, tiene una solución que contiene un proyecto de base de datos denominado MyAdvWorks.

Para abrir la solución MyAdvWorks

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

    Aparecerá el cuadro de diálogo Abrir proyecto.

  2. Abra la carpeta MyAdvWorks y haga doble clic en MyAdvWorks.sln.

    Se abrirá la solución MyAdvWorks y aparecerá en el Explorador de soluciones.

  3. En el menú Ver, haga clic en Vista de esquema.

    Si no estaba visible, aparece la Vista de esquema. Se muestran todos los objetos definidos en el proyecto de base de datos.

  4. Si aún no está expandido, expanda el nodo del proyecto de base de datos en la Vista de esquema.

    A continuación, modificará una definición de tabla para agregar una columna a una tabla.

Para agregar una columna DateAdded a la tabla Product

  1. En Vista de esquema, expanda la carpeta Production, expanda la carpeta Tables, haga clic con el botón secundario del mouse en la tabla Product y haga clic en Abrir.

    Como alternativa, también puede hacer doble clic también en la tabla Product para abrirla.

    Se abre el editor de Transact-SQL y se muestra la definición de la tabla Product.

  2. En el editor de Transact-SQL, modifique la definición para agregar la columna DateAdded como se muestra en el ejemplo siguiente:

    CREATE TABLE [Production].[Product] (
        [ProductID]             INT              IDENTITY (1, 1) NOT NULL,
        [Name]                  [dbo].[Name]     NOT NULL,
        [ProductNumber]         NVARCHAR (25)    NOT NULL,
        [MakeFlag]              [dbo].[Flag]     NOT NULL,
        [FinishedGoodsFlag]     [dbo].[Flag]     NOT NULL,
        [Color]                 NVARCHAR (15)    NULL,
        [SafetyStockLevel]      SMALLINT         NOT NULL,
        [ReorderPoint]          SMALLINT         NOT NULL,
        [StandardCost]          MONEY            NOT NULL,
        [ListPrice]             MONEY            NOT NULL,
        [Size]                  NVARCHAR (5)     NULL,
        [SizeUnitMeasureCode]   NCHAR (3)        NULL,
        [WeightUnitMeasureCode] NCHAR (3)        NULL,
        [Weight]                DECIMAL (8, 2)   NULL,
        [DaysToManufacture]     INT              NOT NULL,
        [ProductLine]           NCHAR (2)        NULL,
        [Class]                 NCHAR (2)        NULL,
        [Style]                 NCHAR (2)        NULL,
        [ProductSubcategoryID]  INT              NULL,
        [ProductModelID]        INT              NULL,
        [DateAdded]             DATETIME         NOT NULL,
        [SellStartDate]         DATETIME         NOT NULL,
        [SellEndDate]           DATETIME         NULL,
        [DiscontinuedDate]      DATETIME         NULL,
        [rowguid]               UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL,
        [ModifiedDate]          DATETIME         NOT NULL
    );
    
    
    GO
    EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Products sold or used in the manfacturing of sold products.', @level0type = N'SCHEMA', @level0name = N'Production', @level1type = N'TABLE', @level1name = N'Product';
    

    Al modificar la definición del objeto, se desprotege en el control de versiones el archivo que contiene esa definición.

  3. En el menú Archivo, haga clic en Guardar Product.table.sql para guardar los cambios.

    De forma predeterminada, el archivo se desprotege automáticamente en el sistema de control de código fuente. Si ha modificado la configuración del control de código fuente, podrían solicitarle que desprotegiera el archivo, dependiendo de la configuración del control de versiones.

    A continuación, agregará una tabla denominada ShipperRating al proyecto de base de datos.

Para agregar la tabla ShipperRating

  1. En Vista de esquema, expanda la carpeta Purchasing y haga clic en la carpeta Tables.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento. También puede hacer clic con el botón secundario en la carpeta Tablas, elegir Agregar y, a continuación, hacer clic en Tabla.

    Aparecerá el cuadro de diálogo Agregar nuevo elemento.

  3. En la lista Plantillas, haga clic en Tabla.

  4. En el cuadro Nombre, escriba ShipperRating y haga clic en Agregar.

    La tabla ShipperRating se agrega al proyecto de base de datos y al sistema de control de código fuente. Aparece el editor de Transact-SQL para que pueda editar la definición de esta tabla.

  5. En el editor de Transact-SQL, modifique la definición de tabla para que coincida con el ejemplo siguiente:

    -- =============================================
    -- Create table definition for ShipperRating 
    --Contains a rating of a shipper by
    --a customer, on a particular date.
    --Ratings are from 1-100.
    -- =============================================
    CREATE TABLE [Purchasing].[ShipperRating]
    (
    [ShipperID] [int] NOT NULL,
    [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
    [RatingDate] [datetime] NULL,
    [Rating] [int] NOT NULL
    ) ON [PRIMARY]
    
  6. En el menú Archivo, haga clic en Guardar ShipperRating.table.sql para guardar los cambios.

    A continuación, agregará una clave externa a la tabla ShipperRating.

Para agregar la clave externa a la tabla ShipperRating

  1. En la Vista de esquema, haga clic con el botón secundario en la tabla ShipperRating, elija Agregar y, a continuación, haga clic en Clave externa.

    Aparecerá el cuadro de diálogo Agregar nuevo elemento con la plantilla Clave externa ya resaltada.

  2. En Nombre, escriba FK_ShipperRating_Shippers y, a continuación, haga clic en Agregar.

    La clave externa FK_ShipperRating_Shippers se agrega a la tabla ShipperRating en su proyecto. Aparece el editor de Transact-SQL para que pueda editar la definición de las claves externas.

    Nota

    La definición predeterminada para la clave externa hace referencia a columna_1 en nombreDeTabla en lugar de hacer referencia a una tabla y una columna reales. Por consiguiente, el icono de FK_ShipperRating_Shippers en la Vista de esquema muestra el icono de error (un círculo rojo que contiene una "x" de color blanco). También aparece un error en la ventana Lista de errores para indicar que tiene una definición de objeto de base de datos no válida. Este comportamiento es normal. El archivo que contiene la definición del objeto en el Explorador de soluciones no muestra un icono de error.

  3. En el editor de Transact-SQL, modifique la definición de la clave externa de forma que coincida con el ejemplo siguiente:

    ALTER TABLE [Purchasing].[ShipperRating]
    ADD CONSTRAINT [FK_ShipperRating_Shippers] 
    FOREIGN KEY ([ShipperID])
    REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID])
    
  4. En el menú Archivo, haga clic en Guardar ShipperRating.FK_ShipperRating_Shippers.fkey.sql para guardar los cambios. El icono de error es sustituido por el icono normal de restricción FOREIGN KEY, porque ahora la definición ya es válida.

    En el último paso, agregará un índice a la tabla ShipperRating.

Para agregar un índice a la tabla ShipperRating

  1. En la Vista de esquema, haga clic en la carpeta Índices.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento. También puede hacer clic con el botón secundario en la carpeta Índices, elegir Agregar y, a continuación, hacer clic en Índice.

  3. En la lista Plantillas, haga clic en Índice si aún no está resaltado.

  4. En Nombre, escriba ShipperRatingDate y haga clic en Agregar.

    El índice ShipperRatingDate se agrega a la tabla ShipperRating de su proyecto. Aparece el editor de Transact-SQL para que pueda editar la definición del índice.

    Nota

    La definición predeterminada para el índice hace referencia a columna_1 en lugar de hacer referencia a un nombre de columna real. Por consiguiente, el icono de ShipperRatingDate en el Explorador de soluciones muestra el icono de error (un círculo rojo que contiene una "x" blanca). También aparece un error en la ventana Lista de errores para indicar que tiene una definición de objeto de base de datos no válida. Este comportamiento es normal.

  5. En el editor de Transact-SQL, modifique la definición de índice de forma que coincida con el ejemplo siguiente:

    -- =============================================
    -- Create index on RatingDate column in 
    --the ShipperRating table.
    -- =============================================
    CREATE INDEX [ShipperRatingDate]
    ON [Purchasing].[ShipperRating]
    (RatingDate)
    

    En el menú Archivo, haga clic en Guardar ShipperRating.ShipperRatingDate.index.sql para guardar los cambios. El icono de error es sustituido por el icono habitual de un índice, porque ahora la definición ya es válida.

Para proteger sus cambios en el sistema de control de versiones

  1. En el menú Ver, elija Otras ventanas y, a continuación, haga clic en Cambios pendientes.

    Aparece la ventana Cambios pendientes para que pueda revisar todos los archivos agregados o modificados.

    Nota

    Los pasos de este procedimiento se escribieron como si estuviera usando control de versiones de Team Foundation. Si no está utilizando control de versiones de Team Foundation, debe seguir en su lugar los procedimientos de su sistema de control de versiones.

  2. (opcional) Especifique un comentario de protección.

  3. Haga clic en Proteger.

    Los cambios del proyecto de base de datos se encuentran protegidos y están ahora disponibles para el resto del equipo.

Pasos siguientes

Después de modificar la representación sin conexión de esta base de datos, debe generar e implementar los cambios en el servidor de bases de datos. Para generar e implementar los cambios, vea Tutorial: Implementar cambios en una base de datos existente con control de versiones.

Vea también

Tareas

Tutorial: Agregar un esquema de base de datos al sistema de control de versiones

Tutorial: Crear e implementar una nueva base de datos con control de versiones

Conceptos

Escribir y cambiar código de base de datos

Compilar e implementar bases de datos en un entorno de desarrollo aislado

Refactorizar código de base de datos y datos