Implementar objetos de base de datos de CLR

Se aplica a:SQL Server

La implementación es el proceso mediante el cual se distribuye una aplicación o módulo finalizados para su instalación y ejecución en otro equipo. Con Microsoft Visual Studio, puede desarrollar objetos de base de datos de Common Language Runtime (CLR) e implementarlos en un servidor de prueba. Como alternativa, los objetos de base de datos administrados también se pueden compilar con los archivos de redistribución de Microsoft .NET Framework, en lugar de Visual Studio. Una vez compilado, los ensamblados que contienen los objetos de base de datos CLR se pueden implementar en un servidor de prueba mediante instrucciones De Visual Studio o Transact-SQL. Tenga en cuenta que Visual Studio .NET 2003 no puede utilizarse para programar o implementar la integración CLR. SQL Server incluye .NET Framework preinstalado y Visual Studio .NET 2003 no puede usar los ensamblados de .NET Framework 2.0.

Una vez que los métodos CLR se han probado y comprobado en el servidor de prueba, pueden distribuirse a los servidores de producción a través de un script de implementación. El script de implementación se puede generar manualmente o mediante SQL Server Management Studio (consulte el procedimiento más adelante en este tema).

La característica de integración clR está desactivada de forma predeterminada en SQL Server y debe estar habilitada para usar ensamblados CLR. Para más información, consulte Enabling CLR Integration.

Implementar el ensamblado en el servidor de prueba

Con Visual Studio, puede desarrollar funciones, procedimientos, desencadenadores, tipos definidos por el usuario (UDT) o agregados definidos por el usuario (UDA) de CLR e implementarlos en un servidor de prueba. Estos objetos de base de datos administrados también pueden compilarse con los compiladores de línea de comandos que se incluyen con los archivos de redistribución de .NET Framework, como csc.exe y vbc.exe. El entorno de desarrollo integrado de Visual Studio no es necesario para desarrollar objetos de base de datos administrados para SQL Server.

Asegúrese de resolver todos los errores y advertencias del compilador. Los ensamblados que contienen las rutinas CLR se pueden registrar en una base de datos de SQL Server mediante instrucciones De Visual Studio o Transact-SQL.

Nota:

El protocolo de red TCP/IP debe estar habilitado en la instancia de SQL Server con el fin de usar Microsoft Visual Studio para el desarrollo remoto, la depuración y el desarrollo. Para obtener más información sobre cómo habilitar el protocolo TCP/IP en el servidor, vea Configurar protocolos de cliente.

Para implementar el ensamblado mediante Visual Studio

  1. Compile el proyecto seleccionando Build project name ( Compilar<nombre> del proyecto) en el menú Compilar .

  2. Resuelva todos los errores y advertencias de generación antes de implementar el ensamblado en el servidor de prueba.

  3. Seleccione Implementar en el menú Compilar . A continuación, el ensamblado se registrará en la instancia de SQL Server y la base de datos especificadas cuando el proyecto de SQL Server se creó por primera vez en Visual Studio.

Para implementar el ensamblado mediante Transact-SQL

  1. Compile el ensamblado del archivo de código fuente utilizando los compiladores de línea de comandos que se incluyen con .NET Framework.

  2. Para los archivos de origen de Microsoft Visual C#:

  3. csc /target:library C:\helloworld.cs

  4. Para los archivos de origen de Microsoft Visual Basic:

vbc /target:library C:\helloworld.vb

Estos comandos inician el compilador de Visual C# o Visual Basic mediante la opción /target para especificar la creación de un archivo DLL de biblioteca.

  1. Resuelva todos los errores y advertencias de generación antes de implementar el ensamblado en el servidor de prueba.

  2. Abra SQL Server Management Studio en el servidor de prueba. Cree una nueva consulta conectada a una base de datos de prueba apropiada (como AdventureWorks).

  3. Cree el ensamblado en el servidor agregando el siguiente Transact-SQL a la consulta.

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;

  1. El procedimiento, la función, el agregado, el tipo definido por el usuario o el desencadenador deben crearse en la instancia de SQL Server. Si el ensamblado HelloWorld contiene un método denominado HelloWorld en la clase Procedures, se puede agregar el siguiente Transact-SQL a la consulta para crear un procedimiento llamado hello en SQL Server.

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

Para obtener más información sobre cómo crear los diferentes tipos de objetos de base de datos administrados en SQL Server, vea Funciones clR User-Defined, agregados clR User-Defined, tipos User-Defined CLR, procedimientos almacenados clR y desencadenadores CLR.

Implementar el ensamblado en servidores de producción

Una vez probados y comprobados los objetos de base de datos de CLR en el servidor de prueba, pueden distribuirse a los servidores de producción. Para obtener más información sobre cómo depurar objetos de base de datos administrados, consulte Depuración de objetos de base de datos CLR.

La implementación de objetos de base de datos administrados es similar a la de los objetos de base de datos normales (tablas, rutinas de Transact-SQL, etc.). Los ensamblados que contienen los objetos de base de datos de CLR pueden implementarse en otros servidores utilizando un script de implementación. El script de implementación se puede compilar mediante la funcionalidad "Generar scripts" de Management Studio. El script de implementación también puede generarse manualmente o puede generarse utilizando "Generar scripts" y modificarse manualmente. Una vez compilado el script de implementación, se puede ejecutar en otras instancias de SQL Server para implementar los objetos de base de datos administrados.

Para generar un script de implementación utilizando la funcionalidad de generación de scripts

  1. Abra Management Studio y conéctese a la instancia de SQL Server donde se registrará el ensamblado administrado o el objeto de base de datos que se va a implementar.

  2. En el Explorador de objetos, expanda los árboles nombre> del< servidor y Bases de datos. Haga clic con el botón derecho en la base de datos donde está registrado el objeto de base de datos administrado, seleccione Tareas y, a continuación, seleccione Generar scripts. Se abrirá el Asistente para script.

  3. Seleccione la base de datos en el cuadro de lista y haga clic en Siguiente.

  4. En el panel Elegir opciones de script , haga clic en Siguiente o cambie las opciones y, a continuación, haga clic en Siguiente.

  5. En el panel Elegir tipos de objeto , elija el tipo de objeto de base de datos que se va a implementar. Haga clic en Next.

  6. Para cada tipo de objeto seleccionado en el panel Elegir tipos de objeto , se presenta un panel Elegir <tipo> . En este panel, puede elegir entre todas las instancias de ese tipo de objeto de base de datos registradas en la base de datos especificada. Seleccione uno o varios objetos y haga clic en Siguiente.

  7. El panel Opciones de salida aparece cuando se han seleccionado todos los tipos de objeto de base de datos deseados. Seleccione Script para archivo y especifique una ruta de acceso de archivo para el script. Seleccione Next (Siguiente). Revise las selecciones y haga clic en Finalizar. El script de implementación se guardará en la ruta de acceso de archivo especificada.

Scripts posteriores a la implementación

Puede ejecutar un script posterior a la implementación.

Para agregar un script posterior a la implementación, agregue un archivo denominado postdeployscript.sql a su directorio de proyecto de Visual Studio. Por ejemplo, haga clic con el botón derecho en el proyecto en Explorador de soluciones y seleccione Agregar elemento existente. Agregue el archivo a la raíz del proyecto, en lugar de agregarlo a la carpeta de scripts de prueba.

Cuando haga clic en Implementar, Visual Studio ejecutará este script tras la implementación del proyecto.

Consulte también

Conceptos de programación en el ámbito de la integración de Common Language Runtime (CLR)