Compartir a través de


Tutorial: Crear e implementar una base de datos que hace referencia a otra base de datos

En este tutorial, creará un proyecto de base de datos para una base de datos que hace referencia a otra base de datos. La base de datos a la que hace referencia el proyecto también se administra mediante Visual Studio Premium pero estará en una solución diferente. Este enfoque emula el escenario común donde diferentes desarrolladores de software administran diferentes bases de datos o donde un desarrollador no puede implementar la base de datos destino de una referencia.

En este tutorial se ilustran las tareas siguientes:

  • Cómo crear un proyecto de base de datos.

  • Cómo hacer referencia a un archivo .dbschema generado por otro proyecto de base de datos.

  • Cómo definir variables y sus valores para el proyecto de base de datos al que se hace referencia.

  • Cómo implementar el proyecto de base de datos en el entorno de desarrollo aislado.

Requisitos previos

Debe tener instalado Visual Studio. Además, debe de haber completado el Tutorial: Crear e implementar una nueva base de datos con control de versiones y haber implementado la base de datos resultante en el entorno de desarrollo aislado. Para agregar un proyecto a un sistema de control de versiones, debe haber instalado software de control de versiones, como Visual Studio Team Foundation Server.

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, ProductsDB, 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á las tablas al proyecto de base de datos.

Para agregar la tabla OrderItems al proyecto de base de datos

  1. En la Vista de esquema, haga clic con el botón secundario del mouse en el proyecto OrdersDB, elija Agregar y haga clic en Tabla.

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

  2. En Plantillas, haga clic en Tabla.

    Nota

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

  3. En Nombre, escriba OrderItems como nombre de la nueva tabla.

  4. 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. Aparecerá el editor de Transact-SQL y se mostrará la definición de la nueva tabla.

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

    -- =============================================
    -- Create OrderItems table
    -- =============================================
    CREATE TABLE [dbo].[OrderItems]
    (
    [POID] INT NOT NULL,
    [ItemID] INT NOT NULL,
    [ProductID] INT NOT NULL,
    [Quantity] INT NOT NULL,
    [Price] FLOAT NOT NULL,
    [Notes] NVARCHAR(75) NULL
    ) ON [PRIMARY]
    
  6. En el menú Archivo, haga clic en Guardar dbo.OrderItems.table.sql.

  7. En la Vista de esquema, expanda el nodo dbo.OrderItems.

  8. Expanda el nodo Columnas de la tabla dbo.OrderItems.

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

    A continuación, agregará una clave principal a la tabla OrderItems.

Para agregar una clave principal a la tabla OrderItems

  1. En Vista de esquema, haga clic con el botón secundario en dbo.OrderItems, elija Agregar y, a continuación, haga clic en Clave principal.

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

  2. En Nombre, escriba PK_OrderItems como nombre de la nueva clave principal.

  3. Haga clic en Agregar para agregar la clave principal.

    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 y se 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.

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

    -- =============================================
    -- Create PK_OrderItems primary key 
    -- =============================================
    ALTER TABLE [dbo].[OrderItems] 
    ADD CONSTRAINT [PK_OrderItems] 
    PRIMARY KEY CLUSTERED  ([POID], [ItemID]) 
    ON [PRIMARY]
    
  5. En el menú Archivo, haga clic en Guardar dbo.OrderItems.PK_OrderItems.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, agregará la referencia entre bases de datos.

Para agregar una vista que hace referencia a una tabla de otra base de datos

  1. En la Vista de esquema, haga clic con el botón secundario del mouse en el nodo Vistas, seleccione Agregar y, a continuación, haga clic en Vista.

  2. En Nombre, escriba ItemDetailsView como nombre de la nueva vista y, a continuación, haga clic en Agregar.

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

    Nota

    En la Vista de esquema, el icono de la vista 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 tabla o vista "[sometableorview]", que no existe.

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

    -- =============================================
    -- Create ItemDetailsView view
    -- =============================================
    CREATE VIEW [dbo].[ItemDetailsView]
    AS 
    SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], 
           O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O
     INNER JOIN [ProductsDB].[dbo].[Products] AS P
            ON P.[ProductID] = O.[ProductID]
    
  4. En el menú Archivo, haga clic en Guardar dbo.ItemDetailsView.view.sql.

  5. En el menú Ver, haga clic en Lista de errores.

    En la Lista de errores, aparecen seis errores. Los errores se producen porque Visual Studio Premium no puede validar si la base de datos a la que se hace referencia existirá en el servidor destino al implementar el proyecto de base de datos. Esta condición resulta significativa porque puede implementar en diferentes ubicaciones de destino. Para resolver los errores, a continuación definirá una referencia entre bases de datos.

Para definir una referencia entre bases de datos

  1. En el Explorador de soluciones, expanda el proyecto OrderItems y haga clic en el nodo Referencias.

  2. En el menú Proyecto, haga clic en Agregar referencia de base de datos.

    Nota

    También puede hacer clic con el botón secundario del mouse en el nodo Referencias y hacer clic en Agregar referencia de base de datos.

    Aparecerá el cuadro de diálogo Agregar referencia de base de datos. Dado que la solución únicamente contiene un proyecto de base de datos, se especifica Esquema de proyecto de base de datos (.dbschema) de forma predeterminada.

  3. Haga clic en Examinar.

    Aparece el cuadro de diálogo Seleccionar archivo de base de datos.

  4. Especifique el archivo ProductsDB.dbschema que se creó cuando compiló el proyecto en el tutorial de requisitos previos (por ejemplo, Mis documentos\Visual Studio 2008\Projects\ProductsDB\ProductsDB\sql\ProductsDB.dbschema) y haga clic en Abrir.

  5. En Variables de referencia de la base de datos, active la casilla Definir variable de la base de datos. En Nombre, escriba ReferencedDBVar. En Valor, escriba ProductsDB.

    Nota

    En este tutorial, puede suponer que la base de datos a la que hace referencia siempre se encuentra en el mismo servidor que la base de datos a la que agrega la referencia. Por tanto, no tiene que definir variables para el nombre del servidor.

  6. En Actualizando los objetos y scripts de esquema, active la casilla Actualizar las definiciones y scripts de los objetos de esquema existentes para que utilicen las variables de referencia de la base de datos y haga clic en Aceptar.

  7. En el cuadro de diálogo Obtener vista previa de cambios, haga clic en INNER JOIN para mostrar los detalles del cambio y, a continuación, haga clic en Aplicar.

    La definición de la vista se actualiza y muestra lo siguiente:

    -- =============================================
    -- Create ItemDetailsView view
    -- =============================================
    CREATE VIEW [dbo].[ItemDetailsView]
    AS 
    SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], 
           O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O
     INNER JOIN [$(ReferencedDBVar)].[dbo].[Products] AS P
            ON P.[ProductID] = O.[ProductID]
    

    El nombre de variable que especificó identifica la tabla a la que hace referencia y se han resuelto los seis errores. A continuación, compilará e implementará el proyecto de base de datos.

Para configurar, compilar e 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.

    Aparece 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 Implementar acció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.

    Nota importanteImportante

    Para completar correctamente este tutorial, debe implementar la base de datos en el mismo servidor donde implementó ProductsDB en el tutorial de requisitos previos. Si desea implementar en un servidor diferente, debe definir una variable para él.

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

    El cuadro Conexión de destino contiene la cadena de conexión y el cuadro Nombre de la base de datos de destino contiene OrdersDB.

  8. Acepte los valores predeterminado de las otras opciones, abra el menú Archivo y haga clic en Guardar los elementos seleccionados.

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

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

    Se genera el proyecto de base de datos. Si la compilación finaliza correctamente, aparece Compilación correcta en la barra de estado y se muestran la salida de compilación en la Ventana de salida.

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

  11. En el menú Generar, elija 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.

Pasos siguientes

Por lo general, ahora incluiría el proyecto de base de datos en el control de versiones para compartirlo con el equipo.

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