Implementar objetos de base de datos de CLR

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. Los objetos de base de datos administrados también pueden compilarse con los archivos de redistribución de Microsoft .NET Framework en lugar de Visual Studio. Una vez compilados, los ensamblados que contienen objetos de base de datos de CLR pueden implementarse en un servidor de prueba mediante instrucciones Transact-SQL o Visual Studio. 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 utilizar 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 puede generarse manualmente o utilizando SQL Server Management Studio (vea el procedimiento posteriormente en este tema).

La característica de integración con CLR está desactivada de forma predeterminada en SQL Server y debe habilitarse para poder usar ensamblados CLR. Para obtener más información, vea Habilitar la integración CLR.

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. No es necesario usar el entorno de desarrollo integrado de Visual Studio 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 pueden registrarse en una base de datos de SQL Server mediante instrucciones Transact-SQL o Visual Studio.

[!NOTA]

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

Para implementar el ensamblado mediante Visual Studio

  1. Genere el proyecto seleccionando Generar <nombre de proyecto> en el menú Generar.

  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ú Generar. El ensamblado se registrará en la instancia de SQL Server y la base de datos especificada 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 código fuente de Microsoft Visual C#:

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

  4. Para los archivos de código fuente de Microsoft Visual Basic:

vbc /target:library C:\helloworld.vb

Estos comandos inician el compilador de Visual C# o Visual Basic utilizando 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 código Transact-SQL a la consulta.

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

  1. Después, debe crear el procedimiento, función, agregado, tipo definido por el usuario o desencadenador en la instancia de SQL Server. Si el ensamblado HelloWorld contiene un método denominado HelloWorld en la clase Procedures, puede agregarse el siguiente código Transact-SQL a la consulta para crear un procedimiento denominado hello en SQL Server.

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

Para obtener más información sobre la forma de crear los distintos tipos de objetos de base de datos administrados en SQL Server, vea Funciones CLR definidas por el usuario, Agregados definidos por el usuario de CLR, Tipos definidos por el usuario de CLR, Procedimientos almacenados de 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 acerca de la depuración de objetos de base de datos administrados, vea Depurar objetos de bases 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 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 puede generarse utilizando 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 generado el script de implementación, puede ejecutarse 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 esté registrado el ensamblado administrado o el objeto de base de datos que va a implementarse.

  2. En el Explorador de objetos, expanda los árboles <nombre de servidor> y Bases de datos. Haga clic con el botón secundario 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 debe implementarse. Haga clic en Siguiente.

  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. Se mostrará el panel Opciones de salida cuando se hayan seleccionado todos los tipos de objetos de base de datos deseados. Seleccione Generar script en archivo y especifique una ruta de acceso de archivo para el script. Seleccione Siguiente. Revise sus 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 secundario en su proyecto en el 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.

Vea también

Otros recursos

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