Share via


Tutorial: Crear e implementar un proyecto de base de datos que utiliza un objeto SQL CLR

Para crear e implementar una base de datos que utiliza un ensamblado de Common Language Runtime (CLR) de SQL Server, cree un proyecto de base de datos y un proyecto de SQL CLR. Al compilar e implementar el proyecto de base de datos, al mismo tiempo se implementa automáticamente el ensamblado de SQL CLR al que hace referencia.

En este tutorial realizará las tareas siguientes:

  • Crear un proyecto de base de datos sencillo.

  • Crear un proyecto de SQL CLR y definir un nuevo tipo de datos.

  • Utilizar el tipo definido en el ensamblado de SQL CLR.

  • Compilar e implementar el proyecto de base de datos.

Requisitos previos

Para completar este tutorial, debe tener instalado Visual Studio 2010 Premium. Debe tener acceso a una instancia de SQL Server 2005 o de SQL Server 2008. Debe haber instalado los ejemplos de código para SQL Server desde el sitio web de CodePlex. Debe tener permisos para implementar una base de datos en el servidor de bases de datos.

Crear un proyecto de base de datos

Para crear un 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 el nodo SQL Server.

    Nota

    Si usa Visual Studio 2010 Professional, también debe expandir el nodo Avanzado antes de hacer clic en SQL Server.

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

  4. En Nombre, escriba SQLClrDatabaseSandbox.

    Nota importanteImportante

    En Ubicación y Nombre de la solución, no cambie los valores predeterminados.

  5. Active la casilla Crear directorio para la solución si aún no está activada.

  6. Desactive la casilla Agregar al control de código fuente si aún no está desactivada y haga clic en Aceptar.

    El proyecto de base de datos vacío aparece en el Explorador de soluciones.

    A continuación, cree un proyecto para el ensamblado de SQL CLR.

Crear un proyecto de SQL CLR.

Para crear un proyecto de SQL CLR

  1. En el menú Archivo, elija Agregar y después haga clic en Proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. En Tipos de proyecto, expanda el nodo Base de datos y haga clic en SQL Server.

  3. En la lista Plantillas, haga clic en Proyecto de servidor de base de datos SQL CLR de Visual Basic o Proyecto de base de datos SQL CLR de Visual C.

  4. En Nombre, escriba SupportingSQLClrObjects.

  5. Haga clic en Aceptar para aceptar la ubicación predeterminada, cierre el cuadro de diálogo y cree el proyecto.

    El proyecto de base de datos vacío aparece en el Explorador de soluciones.

  6. En el cuadro de diálogo Agregar referencia de base de datos, haga clic en Cancelar.

    Si hace clic en Cancelar, permitirá que el proyecto de base de datos determine dónde se implementará el ensamblado.

    A continuación, cree un tipo de datos personalizado en el ensamblado de SQL CLR.

Para definir un tipo de datos SQL CLR personalizado

  1. En el menú Proyecto, haga clic en Agregar tipo definido por el usuario.

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

  2. En Nombre, escriba MyCustomType.cs.

    El editor de código se abre y muestra el contenido de MyCustomType.cs.

    Nota

    En este momento, debe modificar el tipo definido por el usuario predeterminado para proporcionar una implementación que cumpla sus requisitos. Para este tutorial, aceptará la implementación predeterminada. Para obtener más información sobre cómo definir tipos personalizados y otros objetos SQL CLR, vea este tema en el sitio web de Microsoft: Utilización de la integración CLR en SQL Server 2005.

  3. En el menú Archivo, haga clic en Guardar MyCustomType.cs.

Para configurar y compilar el ensamblado de SQL CLR

  1. En el menú Generar, haga clic en Administrador de configuración.

    Aparece el cuadro de diálogo Administrador de configuración.

  2. En Contextos del proyecto, desactive la casilla Implementar en la fila para el ensamblado SupportingSQLClrObjects.

    Al desactivar la casilla, evitará que se implemente el ensamblado al implementar la solución. Dado que el ensamblado se implementará con el proyecto de base de datos, no desea implementar el ensamblado dos veces.

  3. Haga clic en Cerrar.

  4. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto SupportingSQLClrObjects y haga clic en Compilar.

    El ensamblado se compila sin ningún error.

    A continuación, haga referencia al nuevo ensamblado y utilice el tipo que definió en ese ensamblado.

Utilizar el tipo definido en el ensamblado de SQL CLR

Para utilizar el tipo que definió en el ensamblado de SQLCLR, debe agregar una referencia en el proyecto de base de datos a ese ensamblado. A continuación, defina el tipo de datos en el proyecto de base de datos para que pueda utilizar ese nuevo tipo de datos en definiciones de objeto.

Para agregar una referencia a un ensamblado de SQL CLR

  1. En el Explorador de soluciones, expanda el proyecto SQLClrDatabaseSandbox, haga clic con el botón secundario del mouse en el nodo Referencias y haga clic en Agregar referencia.

    Nota

    También puede hacer clic en el proyecto SQLClrDatabaseSandbox en el Explorador de soluciones, abrir el menú Proyecto y hacer clic en Agregar referencia.

    Se abrirá el cuadro de diálogo Agregar referencia.

  2. En la pestaña Proyectos, compruebe que se resalta el proyecto SupportingSQLClrObjects y haga clic en Aceptar.

    En el proyecto de SQL CLR, se agrega una referencia al proyecto de base de datos.

  3. En el Explorador de soluciones, expanda el nodo References, haga clic en el nodo SupportingSQLClrObjects y presione F4.

    Aparecerán las propiedades para la referencia.

  4. Compruebe que Copia local está establecido en True y que Nivel de permisos está establecido en Seguro.

  5. En la propiedad Nombre de ensamblado, reemplace SqlClassLibrary por SupportingSQLClrObjects.

  6. En la propiedad Propietario, escriba dbo.

    Puede especificar un propietario diferente.

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

    Las propiedades especificadas controlan la instrucción CREATE ASSEMBLY que se crea al compilar el proyecto.

    A continuación, defina un tipo de datos que utilice el ensamblado que produce el proyecto de SQL CLR.

Para definir el nuevo tipo de datos

  1. En el menú Ver, haga clic en Lista de errores y Vista de esquema de la base de datos.

  2. Expanda el nodo SQLClrDatabaseSandbox, expanda el nodo Schemas, expanda el nodo dbo y expanda el nodo Programmability.

  3. Haga clic con el botón secundario en el nodo Types, seleccione Agregar y haga clic en Tipo definido por el usuario CLR.

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

  4. En Plantillas, compruebe que se resalta Tipo definido por el usuario (CLR).

  5. En Nombre, escriba MyCustomTypey haga clic en Agregar.

    Aparece el editor Transact-SQL y se muestra la definición para el tipo. En la ventana Lista de errores aparece el siguiente error:

SR0029 : Microsoft.Validation : User Defined Type: [dbo].[MyCustomType] has an unresolved reference to Assembly [assembly_name]
  1. En el editor Transact-SQL, actualice el código para que coincida con el siguiente:

    CREATE TYPE [dbo].[MyCustomType]
    EXTERNAL NAME [SupportingSQLClrObjects].[MyCustomType]
    
  2. En el menú Archivo, haga clic en Guardar MyCustomType.udtclr.sql.

    En la ventana Lista de errores, el error desaparece porque ha actualizado la definición de tipo para que haga referencia a un ensamblado y una clase válidos.

    A continuación, defina una tabla simple que utilice el nuevo tipo de datos.

Para utilizar el nuevo tipo de datos en una definición de tabla

  1. En Vista de esquema, abra el nodo Schemas y abra el nodo dbo.

  2. Haga clic con el botón secundario en el nodo Tablas, seleccione Agregar y haga clic en Tabla.

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

  3. En Plantillas, compruebe que se resalta Tabla.

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

    Aparece el editor Transact-SQL y se muestra la definición para la tabla.

  5. En el editor Transact-SQL, actualice el código para que coincida con el siguiente:

    CREATE TABLE [dbo].[SimpleTable]
    (
    column_1 int NOT NULL, 
    column_2 [dbo].[MyCustomType] NULL
    )
    
  6. En el menú Archivo, haga clic en Guardar dbo.SimpleTable.table.sql.

    A continuación, configure el proyecto de base de datos e impleméntelo en un entorno de desarrollo aislado.

Compilar e implementar el proyecto de base de datos

Para configurar los valores de compilación

  1. En el Explorador de soluciones, haga clic en SQLClrDatabaseSandbox.

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

  3. Haga clic en la pestaña Compilar y revise la configuración predeterminada.

    En este tutorial, puede utilizar la configuración predeterminada.

    A continuación, configure los valores de implementación.

Para configurar valores de implementación

  1. Haga clic en la pestaña Implementar.

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

  3. En la lista Configurar valores de implementación para, haga clic en Mi entorno de desarrollo aislado.

    Especificando este valor, configurará valores que afectan solo a su entorno de desarrollo aislado. No cambiará los valores para el proyecto de base de datos.

  4. En Nombre de script de implementación, acepte el valor predeterminado.

  5. En Valores de la base de datos de destino, haga clic Editar para especificar una conexión de destino.

  6. En el cuadro de diálogo Propiedades de la conexión, especifique una conexión al servidor y a la base de datos donde desea implementar el proyecto de base de datos y, a continuación, haga clic en Aceptar.

  7. En Nombre de la base de datos de destino, acepte el valor predeterminado.

  8. En la lista Archivo de configuración de implementación, haga clic en Properties\Database.deploymentconfig.

    De forma predeterminada, su entorno de desarrollo aislado no está asociado a un conjunto de valores de implementación detallados. Al especificar este archivo, utilizará los valores de implementación que están asociados al proyecto de base de datos. También puede crear un archivo de configuración independiente y modificar los valores para el entorno de desarrollo aislado.

  9. En la lista Archivo de variables de comando SQL, haga clic en Properties\Database.sqlcmdvars.

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

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

Para compilar e implementar el proyecto de base de datos

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

    El proyecto de base de datos y el proyecto de ensamblado de SQL CLR se compilan correctamente.

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

    El proyecto de base de datos y el ensamblado de SQL CLR se implementan en el servidor de destino y la base de datos que especificó en la configuración de implementación. En la Ventana de salida, aparece el mensaje siguiente:

    ========== Implementar: 1 correctos, 0 incorrectos, 1 omitidos ==========.

    El proyecto de base de datos se implementó correctamente. Cuando implementó el proyecto de base de datos, también implementó el ensamblado de SQL CLR. No fue necesario implementar el ensamblado de SQL CLR por separado, motivo por el cual se omitió al implementar la solución.

Poner el proyecto a disposición del equipo (opcional)

Para agregar un proyecto a un sistema de control de versiones

  1. En el Explorador de soluciones, haga clic en el nodo SQLClrDatabaseSandbox.

  2. En el menú Archivo, seleccione 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 Visual Studio 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 que hospeda 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 SQLClrDatabaseSandbox 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. En el Explorador de soluciones, los iconos cambian para mostrar que los archivos se encuentran protegidos en el sistema de control de versiones.

Pasos siguientes

A continuación, puede crear pruebas unitarias de base de datos y un plan de generación de datos para probar el ensamblado. Para obtener más información, vea Configurar proyectos de base de datos y realizar una implementación de prueba.

Vea también

Conceptos

Iniciar el desarrollo en equipo de bases de datos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a otras bases de datos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de SQLCLR

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de servidor compartidos

Permisos necesarios para las características de base de datos de Visual Studio