Compartir a través de


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

En este tutorial creará una base de datos simple con dos tablas y un procedimiento almacenado. Este proceso requiere crear un proyecto de base de datos, crear objetos de base de datos en el proyecto y, a continuación, generar e implementar los cambios en un servidor de bases de datos. Si crea un proyecto de base de datos, puede agregar el esquema de la base de datos al sistema de control de versiones.

El objetivo de este tema no es demostrar cómo llevar a cabo implementaciones en un entorno de preproducción o producción. Para implementar en esos tipos de entornos, se usa normalmente la utilidad VSDBCMD.EXE o podría implementar manualmente utilizando el script de implementación. Para obtener más información, vea los temas siguientes:

Los principales pasos de este tutorial son los siguientes:

  • Crear un proyecto de base de datos.

  • Crear las tablas de la base de datos.

  • Crear los índices, las claves y las restricciones para las tablas.

  • Crear dos procedimientos almacenados.

  • Configurar las propiedades del proyecto de base de datos.

  • Generar el proyecto de base de datos.

  • Implementar el proyecto de base de datos.

  • Agregar el proyecto de base de datos al sistema de control de versiones.

Requisitos previos

Para realizar este tutorial, debe iniciar una sesión con una cuenta que tenga los permisos necesarios para crear una base de datos en un servidor de bases de datos que ejecute SQL Server 2008.

Para crear el proyecto de base de datos

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

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. En Plantillas instaladas, expanda el nodo Base de datos y, a continuación, haga clic en SQL Server.

    Nota

    En cambio, si usa Visual Studio Professional, en Plantillas instaladas, expanda el nodo Base de datos, expanda el nodo SQL Server y, a continuación, haga clic en Avanzadas.

  3. En la lista de plantillas, haga clic en Proyecto de base de datos de SQL Server 2008.

  4. En Nombre, escriba OrdersDB.

  5. Active la casilla Crear directorio para la solución.

  6. Acepte los valores predeterminados para Ubicación, Nombre de la solución y Agregar al control de código fuente y, a continuación, haga clic en Aceptar.

    Nota

    En este punto del procedimiento puede agregar la solución al control de versiones. En este tutorial va a agregar la solución al sistema de control de versiones en el procedimiento final.

    El nuevo proyecto de base de datos, OrdersDB, aparece en el Explorador de soluciones.

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

    Si no estaba visible, aparece la Vista de esquema.

    A continuación, agregará un esquema al proyecto de base de datos.

Para agregar el esquema Sales al proyecto de base de datos

  1. En Vista de esquema, expanda el nodo OrdersDB y haga clic en el nodo Schemas.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

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

    Nota

    También puede hacer clic con el botón secundario en el proyecto OrdersDB en la Vista de esquema, elegir Agregar y hacer clic en Esquema.

  3. En Plantillas, haga clic en Esquema.

    Nota

    En la lista Categorías, puede hacer clic en Tablas y vistas para localizar con más facilidad la plantilla de una tabla.

  4. En Nombre, escriba Sales como nombre del nuevo esquema.

  5. Haga clic en Agregar para agregar el esquema al proyecto de base de datos.

    El Explorador de soluciones muestra el nuevo archivo del esquema en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de esquema. Aparece el editor Transact-SQL, que muestra la definición del nuevo esquema.

    A continuación, agregue las tablas al proyecto de base de datos.

Para agregar la tabla Customer al proyecto de base de datos

  1. En la Vista de esquema, expanda el nodo Sales, haga clic con el botón secundario en el nodo Tablas, elija Agregar y haga clic en Tabla.

  2. En Nombre, escriba Customer como nombre de la nueva tabla.

  3. Haga clic en Agregar para agregar la tabla al proyecto de base de datos.

    El Explorador de soluciones muestra el nuevo archivo para la tabla en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de tabla. Aparece el editor de Transact-SQL, que muestra la definición de la nueva tabla.

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

    CREATE TABLE [Sales].[Customer] (
        [CustomerID] INT IDENTITY (1, 1) NOT NULL,
        [CustomerName] NVARCHAR (40) NOT NULL,
        [YTDOrders] INT NOT NULL,
        [YTDSales] INT NOT NULL
    );
    
  5. En el menú Archivo, haga clic en Guardar Sales.Customer.table.sql.

  6. En la Vista de esquema, expanda el nodo Sales.Customer.

  7. Expanda el nodo Columnas de la tabla Sales.Customer.

    Aparecen las cuatro columnas que definió en el editor de Transact-SQL.

    A continuación, agregue una clave principal a la tabla Customer.

Para agregar un índice a la tabla Customer

  1. En Vista de esquema, haga clic con el botón secundario en Sales.Customer, señale a Agregar y haga clic en Índice.

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

  2. En Plantillas, haga clic en Índice.

  3. En Nombre, escriba IX_CustomerCustomerName como nombre del nuevo índice.

  4. Haga clic en Agregar para agregar el índice a la tabla Categories.

    El Explorador de soluciones muestra el nuevo archivo para el índice en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de índice. Aparece el editor de Transact-SQL, que muestra la definición del nuevo índice.

    Nota

    En la Vista de esquema, el icono del índice se muestra con un círculo de color rojo que contiene una "x" de color blanco, que indica que la definición predeterminada contiene un error. Esto es normal, ya que la definición predeterminada hace referencia a la columna "column_1", que no existe.

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

    CREATE INDEX [IX_CustomerCustomerName]
        ON [Sales].[Customer]
    (CustomerName)
    
  6. En el menú Archivo, haga clic en Guardar Sales.Customer.IX_CustomerCustomerName.index.sql.

    El indicador de error desaparece del icono, lo que indica que ahora la definición del índice es válida.

    A continuación, agregue una clave principal a la tabla Customer.

Para agregar una clave principal a la tabla Customer

  1. En Vista de esquema, haga clic con el botón secundario en Sales.Customer, señale a Agregar y haga clic en Clave principal.

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

  2. En Plantillas, haga clic en Clave principal.

  3. En Nombre, escriba PK_CustomerCustomerID como nombre de la nueva clave principal.

  4. Haga clic en Agregar para agregar la clave principal a la tabla Customer.

    El Explorador de soluciones muestra el nuevo archivo para la clave principal en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de clave principal. Aparece el editor de Transact-SQL, que muestra la definición de la nueva clave.

    Nota

    En la Vista de esquema, el icono de la clave principal se muestra con un círculo de color rojo que contiene una "x" de color blanco, que indica que la definición predeterminada contiene un error. Esto es normal, ya que la definición predeterminada hace referencia a la columna "column_1", que no existe.

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

    ALTER TABLE [Sales].[Customer]
    ADD CONSTRAINT [PK_CustomerCustomerID]
    PRIMARY KEY (CustomerID)
    
  6. En el menú Archivo, haga clic en Guardar Sales.Customer.PK_CustomerCustomerID.pkey.sql.

    El indicador de error desaparece del icono, lo que indica que ahora la definición de la clave principal es válida.

    A continuación, agregue la tabla Orders.

Para agregar la tabla Orders

  1. Haga clic en OrdersDB en Vista de esquema.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

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

    Nota

    También puede hacer clic con el botón secundario en el proyecto OrdersDB en la Vista de esquema, elegir Agregar y hacer clic en Tabla.

  3. En Plantillas, haga clic en Tabla.

  4. En Nombre, escriba Orders como nombre de la nueva tabla.

  5. Haga clic en Agregar para agregar la tabla al proyecto de base de datos.

    El Explorador de soluciones muestra el nuevo archivo para la tabla en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de tabla. Aparece el editor de Transact-SQL, que muestra la definición de la nueva tabla.

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

    CREATE TABLE [Sales].[Orders] (
        [CustomerID] INT NOT NULL,
        [OrderID] INT IDENTITY (1, 1) NOT NULL,
        [OrderDate] DATETIME NOT NULL,
        [FilledDate] DATETIME NULL,
        [Status] CHAR (1) NOT NULL,
        [Amount] INT NOT NULL
    );
    
  7. En el menú Archivo, haga clic en Guardar Sales.Orders.table.sql.

  8. En Vista de esquema, expanda el nodo Sales.Orders.

  9. Expanda el nodo Columnas de la tabla Sales.Orders.

    Aparecen las columnas que definió en el editor de Transact-SQL.

    A continuación, agregue una clave principal a la tabla Orders.

Para agregar una clave principal a la tabla Orders

  1. En Vista de esquema, haga clic con el botón secundario en Sales.Orders, señale a Agregar y haga clic en Clave principal.

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

  2. En Plantillas, haga clic en Clave principal.

  3. En Nombre, escriba PK_OrdersOrderID como nombre de la nueva clave principal.

  4. Haga clic en Agregar para agregar la clave principal a la tabla Orders.

    El Explorador de soluciones muestra el archivo para la nueva clave principal en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de clave principal. Aparece el editor de Transact-SQL, que muestra la definición de la nueva clave principal.

    Nota

    En la Vista de esquema, el icono de la clave principal se muestra con un círculo de color rojo que contiene una "x" de color blanco, que indica que la definición predeterminada contiene un error. Esto es normal, ya que la definición predeterminada hace referencia a la columna "column_1", que no existe.

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

    ALTER TABLE [Sales].[Orders]
        ADD CONSTRAINT [PK_Orders_OrderID] PRIMARY KEY CLUSTERED ([OrderID] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF);
    
  6. En el menú Archivo, haga clic en Guardar Sales.Orders.PK_Orders_OrderID.pkey.sql.

    El indicador de error desaparece del icono, lo que indica que ahora la definición de la clave principal es válida.

    A continuación, agregue una clave externa a la tabla Orders.

Para agregar una clave externa entre la tabla Orders y la tabla Customer

  1. En Vista de esquema, haga clic con el botón secundario en Sales.Orders, señale a Agregar y haga clic en Clave externa.

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

  2. En Plantillas, haga clic en Clave externa.

  3. En Nombre, escriba FK_OrdersCustomer como nombre de la nueva clave externa.

  4. Haga clic en Agregar para agregar la clave externa a la tabla Orders.

    El Explorador de soluciones muestra el archivo para la nueva clave externa en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de clave externa. Aparece el editor de Transact-SQL, que muestra la definición de la nueva clave externa.

    Nota

    En la Vista de esquema, el icono de la clave externa se muestra con un círculo de color rojo que contiene una "x" de color blanco, que indica que la definición predeterminada contiene un error. Esto es normal, ya que la definición predeterminada hace referencia a la columna "column_1", que no existe.

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

    ALTER TABLE [Sales].[Orders]
        ADD CONSTRAINT [FK_Orders_Customer_CustID] 
        FOREIGN KEY ([CustomerID]) REFERENCES [Sales].[Customer] ([CustomerID]) 
        ON DELETE NO ACTION ON UPDATE NO ACTION;
    
  6. En el menú Archivo, haga clic en Guardar Sales.Orders.FK_OrdersCustomer.fkey.sql.

    El indicador de error desaparece del icono, lo que indica que ahora la definición de la clave externa es válida.

    A continuación, agregue una restricción CHECK a la tabla Products.

Para agregar una restricción Check a la tabla Orders

  1. En Vista de esquema, haga clic en Sales.Orders, señale a Agregar y haga clic en Restricción Check.

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

  2. En Plantillas, haga clic en Restricción CHECK.

  3. En Nombre, escriba CK_OrderStatus como nombre de la nueva restricción check.

  4. Haga clic en Agregar para agregar la restricción a la tabla Products.

    El Explorador de soluciones muestra el archivo para la nueva restricción en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de restricción. Aparece el editor Transact-SQL, que muestra la definición de la nueva restricción.

    Nota

    En la Vista de esquema, el icono de la restricción se muestra con un círculo de color rojo que contiene una "x" de color blanco, que indica que la definición predeterminada contiene un error. Esto es normal, ya que la definición predeterminada hace referencia a la columna "column_1", que no existe.

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

    ALTER TABLE [Sales].[Orders]
    ADD CONSTRAINT [CK_OrderStatus] 
    CHECK  ([Status] IN ('O','X','F','B'))
    
  6. En el menú Archivo, haga clic en Guardar Sales.Orders.CK_OrderStatus.chkconst.sql.

    El indicador de error desaparece del icono, lo que indica que ahora la definición de la restricción es válida.

    A continuación, agregue dos procedimientos almacenados al proyecto.

Para crear un de procedimiento almacenado que agrega un cliente

  1. En la Vista de esquema, en Esquemas, haga clic con el botón secundario en Sales, elija Agregar y haga clic en Procedimiento almacenado.

  2. En Nombre, escriba uspNewCustomer como nombre del procedimiento almacenado.

  3. Haga clic en Agregar para agregar el procedimiento almacenado al proyecto de base de datos.

    El Explorador de soluciones muestra el archivo para el nuevo procedimiento almacenado en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de procedimiento almacenado. Aparece el editor de Transact-SQL, que muestra la definición del nuevo procedimiento almacenado.

  4. En el editor de Transact-SQL, modifique la definición del procedimiento almacenado de forma que coincida con el ejemplo siguiente:

    CREATE PROCEDURE [Sales].[uspNewCustomer]
    @CustomerName NVARCHAR (40)
    AS
    BEGIN
    INSERT INTO [Sales].[Customer] (CustomerName) VALUES (@CustomerName);
    SELECT SCOPE_IDENTITY()
    END
    
  5. En el menú Archivo, haga clic en Guardar Sales.uspNewCustomer.proc.sql.

  6. En la Vista de esquema, expanda el nodo Programación y, a continuación, expanda Procedimientos almacenados.

    Aparece el procedimiento que definió en el editor de Transact-SQL.

    A continuación agrega un segundo de procedimiento almacenado que abre un pedido para un cliente.

Para crear un de procedimiento almacenado que hace un pedido para un cliente

  1. Haga clic en OrdersDB en Vista de esquema.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

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

    Nota

    También puede hacer clic con el botón secundario en el proyecto OrdersDB en la Vista de esquema, apuntar a Agregar y hacer clic en Procedimiento almacenado.

  3. En Categorías, expanda Proyecto de base de datos y haga clic en Programación.

  4. En Plantillas, haga clic en Procedimiento almacenado.

  5. En Nombre, escriba uspPlaceNewOrder como nombre del procedimiento almacenado.

  6. Haga clic en Agregar para agregar el procedimiento almacenado al proyecto de base de datos.

    El Explorador de soluciones muestra el archivo para el nuevo procedimiento almacenado en el proyecto de base de datos. La Vista de esquema muestra el nuevo objeto de procedimiento almacenado. Aparece el editor de Transact-SQL, que muestra la definición del nuevo procedimiento almacenado.

  7. En el editor de Transact-SQL, modifique la definición del procedimiento almacenado de forma que coincida con el ejemplo siguiente:

    CREATE PROCEDURE [Sales].[uspPlaceNewOrder]
    @CustomerID INT, @Amount INT, @OrderDate DATETIME, @Status CHAR (1)='O'
    AS
    BEGIN
    DECLARE @RC INT
    BEGIN TRANSACTION
    INSERT INTO [Sales].[Orders] (CustomerID, OrderDate, FilledDate, Status, Amount) 
         VALUES (@CustomerID, @OrderDate, NULL, @Status, @Amount)
    SELECT @RC = SCOPE_IDENTITY();
    UPDATE [Sales].[Customer]
       SET
       YTDOrders = YTDOrders + @Amount
        WHERE [CustomerID] = @CustomerID
    COMMIT TRANSACTION
    RETURN @RC
    END
    
  8. En el menú Archivo, haga clic en Guardar Sales.uspPlaceNewOrder.proc.sql.

  9. En la Vista de esquema, expanda el nodo Programación y, a continuación, expanda Procedimientos almacenados.

    Aparece el procedimiento que definió en el editor de Transact-SQL.

    A continuación, configure el proyecto antes de generarlo e implementarlo.

Para configurar los valores para implementar el proyecto

  1. En el Explorador de soluciones, haga clic en OrdersDB (el proyecto, no la solución).

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

    Aparecerá la ventana Propiedades del proyecto.

    Nota

    También puede hacer clic con el botón secundario del mouse en OrdersDB en el Explorador de soluciones y, a continuación, hacer clic en Propiedades.

  3. Haga clic en la pestaña Implementar.

  4. En la lista Acción de implementación, haga clic en Crear un script de implementación (.sql) e implementar en la base de datos.

  5. Haga clic en Editar para especificar la conexión de destino.

  6. Especifique la información para conectarse al servidor de bases de datos en el que desea implementar la base de datos OrdersDB.

  7. En Seleccione o escriba el nombre de la base de datos, escriba OrdersDB o haga clic en Aceptar.

    En Conexión de destino se mostrará la cadena de conexión. Observe que el Nombre de la base de datos de destino es OrdersDB.

  8. Acepte los valores predeterminados para las demás opciones.

  9. En el menú Archivo, haga clic en Guardar los elementos seleccionados.

    Se guarda la configuración de generación del proyecto.

    A continuación, genere el proyecto de base de datos.

Para generar el proyecto de base de datos

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

    Se genera el proyecto de base de datos. Si la generación finaliza correctamente, aparecerá Compilación correcta en la barra de estado y los resultados de la compilación en la Ventana de salida.

    Por último, implemente el proyecto de base de datos.

Para implementar el proyecto de base de datos en el servidor de bases de datos

  1. En el Explorador de soluciones, haga clic en OrdersDB (el proyecto, no la solución).

  2. En el menú Generar, haga clic en Implementar OrdersDB.

    El proyecto de base de datos se implementa a través de la conexión especificada en la configuración de generación. Se muestra el mensaje "Implementación correcta" en la Ventana de salida y en la barra de estado.

Para proteger el proyecto de base de datos en el sistema de control de versiones

  1. En el Explorador de soluciones, haga clic en OrdersDB (la solución).

  2. En el menú Archivo, elija Control de código fuente y haga clic en Agregar solución al control de código fuente.

    En este punto, interactuará con el software de control de versiones que esté instalado. En este tutorial se describen los pasos para agregar el proyecto a Team Foundation Server. Si desea utilizar otro software de control de versiones, utilice los pasos equivalentes. Si usa Team Foundation Server, aparecerá el cuadro de diálogo Conectar con servidor Team Foundation Server.

  3. En Conectar con un servidor Team Foundation Server, haga clic en el servidor donde se encuentra el proyecto de equipo al que desea agregar la solución.

    Nota

    Si no tiene un proyecto de equipo al que agregar el proyecto de base de datos, vea Planear y seguir proyectos.

  4. En Proyectos de equipo, haga clic en el proyecto de equipo al que desea agregar el proyecto de base de datos y haga clic en Aceptar.

    Aparecerá el cuadro de diálogo Agregar la solución OrdersDB al control de código fuente.

  5. Para aceptar los valores predeterminados, haga clic en Aceptar.

    Su proyecto de base de datos y los archivos que contiene se colocan en el sistema de control de versiones. Inicialmente, todavía se encuentran desprotegidos. Protéjalos antes de que otros integrantes del equipo tengan acceso a ellos.

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

    Aparecerá la ventana Cambios pendientes.

  7. En el campo Comentario, escriba Creación inicial del proyecto de base de datos.

  8. En la ventana Cambios pendientes, haga clic en Proteger en la barra de herramientas.

    Cuando se protege el proyecto de base de datos y los archivos que contiene, aparece el cuadro de diálogo Comprobación en curso. Los iconos del Explorador de soluciones se actualizarán para mostrar que los archivos se encuentran protegidos en el sistema de control de versiones.

Pasos siguientes

Otros tutoriales le enseñarán a trabajar con bases de datos implementadas.

Vea también

Conceptos

Configurar proyectos de base de datos y realizar una implementación de prueba

Escribir y cambiar código de base de datos

Generar e implementar bases de datos en un entorno de ensayo o de producción

Historial de cambios

Fecha

Historial

Motivo

Julio de 2010

Aclarado el objetivo del tutorial y agregaos vínculos a los temas que cubren otros escenarios de implementación.

Comentarios de los clientes.