Share via


Cómo: Crear un proyecto para objetos de base de datos que usan la integración de Common Language Runtime de SQL Server

Los proyectos de SQL Server en Visual Studio ayudan a crear procedimientos almacenados, desencadenadores, agregados, funciones definidas por el usuario y tipos definidos por el usuario mediante el uso de lenguajes de .NET Framework como Visual Basic y Visual C#. Los proyectos de SQL Server requieren una referencia a SQL Server 2005 o versiones posteriores de SQL Server. Estos objetos se conocen a menudo como objetos de Common Language Runtime de SQL Server u objetos CLR de SQL.

Nota importanteImportante

Si desea desarrollar ensamblados CLR de SQL para SQL Server 2005 o SQL Server 2008, debe tener .NET Framework versión 3.5 instalado en su equipo de desarrollo. SQL Server 2005 y SQL Server 2008 requieren que los ensamblados CLR de SQL estén dirigidos a la versión 2.0, 3.0 ó 3.5 de .NET Framework. Puede instalar Microsoft .NET Framework 3.5 desde el sitio web de Microsoft.

Después de crear un proyecto de base de datos CLR de SQL, se crean los objetos de base de datos que se desean implementar en SQL Server. La tabla siguiente proporciona vínculos a temas de la Ayuda en los que se describe cómo crear objetos de base de datos disponibles:

Objeto de base de datos

Información

Procedimiento almacenado

Cómo: Crear y ejecutar un procedimiento almacenado de SQL Server mediante la integración de Common Language Runtime

Desencadenador

Cómo: Crear y ejecutar un desencadenador de SQL Server mediante la integración de Common Language Runtime

Aggregate

Cómo: Crear y ejecutar un agregado de SQL Server mediante la integración de Common Language Runtime

Función definida por el usuario

Cómo: Crear y ejecutar una función definida por el usuario de SQL Server mediante la integración de Common Language Runtime

Tipo definido por el usuario

Cómo: Crear y ejecutar un tipo definido por el usuario de SQL Server mediante la integración de Common Language Runtime

Nota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de configuración.

Crear un proyecto nuevo

Para crear un nuevo proyecto de SQL Server

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

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

  3. En la lista de plantillas, haga clic en el icono que corresponde al tipo de proyecto que desea crear. Por ejemplo, para crear un proyecto CLR de SQL que usa Visual C#, haga clic en Proyecto de base de datos SQL CLR de Visual C#.

  4. En la lista de versiones de .NET Framework de destino, que se encuentra sobre la lista de plantillas, haga clic en la versión de .NET Framework que corresponde a la versión de SQL Server en la que piensa implementar el proyecto de base de datos CLR de SQL.

    Nota importanteImportante

    SQL Server 2005 y SQL Server 2008 solo admiten proyectos de SQL Server compilados con las versiones 2.0, 3.0 ó 3.5 de .NET Framework. Si intenta implementar un proyecto de SQL Server en SQL Server 2005 o SQL Server 2008, aparece un error: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (donde AssemblyName es el nombre del ensamblado que se implementa).

  5. En Nombre, especifique el nombre que desea usar para el proyecto.

  6. Haga clic en Aceptar.

Configurar el proyecto de SQL Server

Después de crear el proyecto de SQL Server, quizás desee modificar algunas de sus propiedades para su correcta implementación.

Para configurar las propiedades del proyecto de SQL Server

  1. En el Explorador de soluciones, seleccione el proyecto cuyas propiedades desea configurar.

  2. En el menú Proyecto, haga clic en Propiedades de NombreProyecto, donde NombreProyecto es el nombre con el que designó el proyecto de SQL Server.

  3. En la pestaña Aplicación, en Nombre del ensamblado, especifique el nombre que desea asignar al ensamblado que se compila desde el proyecto de SQL Server.

  4. Si ya ha especificado una versión de .NET Framework compatible con la versión de SQL Server en la que tiene previsto implementar el proyecto de base de datos CLR de SQL, puede ir directamente al paso 10.

  5. Si usa Visual Basic, vaya directamente al paso 7.

  6. En la pestaña Aplicación, en Versión de .NET Framework de destino, haga clic en la versión de .NET Framework que corresponde a la versión de SQL Server en la que tiene previsto implementar el proyecto de base de datos CLR de SQL.

    Nota importanteImportante

    SQL Server 2005 y SQL Server 2008 solo admiten proyectos de SQL Server compilados con las versiones 2.0, 3.0 ó 3.5 de .NET Framework. Si intenta implementar un proyecto de SQL Server en SQL Server 2005 o SQL Server 2008, aparece un error: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (donde AssemblyName es el nombre del ensamblado que se implementa).

  7. Vaya al paso 10 (los pasos 7, 8 y 9 solo son aplicables cuando se usa Visual Basic).

  8. En la pestaña Compilación, haga clic en Opciones de compilación avanzadas.

  9. En el cuadro de diálogo Configuración de compilador avanzada, en Versión de .NET Framework de destino, haga clic en la versión de .NET Framework que corresponde a la versión de SQL Server en la que tiene previsto implementar el proyecto de base de datos CLR de SQL.

    Nota importanteImportante

    SQL Server 2005 y SQL Server 2008 solo admiten proyectos de SQL Server compilados con las versiones 2.0, 3.0 ó 3.5 de .NET Framework. Si intenta implementar un proyecto de SQL Server en SQL Server 2005 o SQL Server 2008, aparece un error: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (donde AssemblyName es el nombre del ensamblado que se implementa).

  10. Haga clic en Aceptar.

  11. En la pestaña Base de datos, en Propietario del ensamblado, escriba el nombre de un usuario o un rol como propietario del ensamblado.

    Nota importanteImportante

    Este valor debe ser el nombre de un rol del que sea miembro el usuario actual o el usuario actual debe tener el permiso IMPERSONATE. Si no especifica un propietario del ensamblado, se confiere la propiedad al usuario actual. Este valor corresponde al argumento AUTHORIZATION nombre_de_propietario de la instrucción CREATE ASSEMBLY de SQL Server. Para obtener más información, vea CREATE ASSEMBLY (Transact-SQL) en el sitio web de Microsoft.

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

    Si desea crear un objeto CLR de SQL que use la serialización XML, realice los pasos adicionales que se describen a continuación en "Crear objetos CLR de SQL que usen serialización XML".

Crear objetos CLR de SQL que usen serialización XML

Si va a crear un servicio Web, puede activar la opción Generar ensamblados de serialización en las propiedades de compilación. Sin embargo, al implementar el ensamblado que contiene los objetos CLR de SQL, el ensamblado de serialización XML no se crea en el servidor de destino. Debe agregar una instrucción al script PostDeployScript.sql para crear ese ensamblado.

Nota

Si va a crear un servicio Web, debe establecer el conjunto de permisos en External_Access o Unsafe, y la base de datos de destino debe tener el valor Trustworthy activado.

Para crear el ensamblado XMLSerializer para un ensamblado CLR de SQL

  1. En el Explorador de soluciones, expanda el proyecto CLR de SQL que desea implementar y haga doble clic en el script PostDeployScript.sql.

  2. En el editor de código, agregue la siguiente instrucción Transact-SQL al script:

    CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll' 
    

    Donde SqlClassLibraryXML es el nombre que desea proporcionar al ensamblado, path es la ruta de acceso al ensamblado del serializador y assemblyname.XmlSerializers.dll es el nombre del ensamblado del serializador.

  3. En el menú Archivo, haga clic en Guardar PostDeployScript.dll.

Conectar a una base de datos de SQL Server

Los proyectos CLR de SQL requieren una conexión a una base de datos que se ejecute en SQL Server 2005 o posterior. Si las conexiones a las bases de datos de SQL Server 2005 están disponibles en el Explorador de servidores, aparecerán en el cuadro de diálogo Agregar referencia de base de datos. Si piensa implementar el ensamblado que compiló a partir de los proyectos de SQL Server mediante un proyecto de base de datos (.dbproj), no tiene que especificar una conexión de base de datos y puede hacer clic en Cancelar en el cuadro de diálogo de conexión. Para obtener más información, vea Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de SQLCLR.

Para conectar a una base de datos de SQL Server

Vea también

Tareas

Tutorial: Crear un procedimiento almacenado en código administrado

Cómo: Depurar un procedimiento almacenado de SQL CLR

Referencia

Atributos para proyectos de base de datos CLR de SQL Server y objetos de base de datos

Conceptos

Introducción a la integración de CLR y SQL Server (ADO.NET)

Ventajas de utilizar código administrado para crear objetos de base de datos

Crear objetos de SQL Server en código administrado