Crear funciones CLR
En SQL Server 2005, puede crear un objeto de base de datos dentro de una instancia de SQL Server programada en un ensamblado creado en Common Language Runtime (CLR) de Microsoft .NET Framework. Los objetos de bases de datos capaces de aprovechar el modelo enriquecido de programación suministrado por Common Language Runtime son las funciones de agregado, las funciones, los procedimientos almacenados, los desencadenadores y los tipos.
Para crear una función CLR en SQL Server se deben seguir los pasos detallados a continuación:
- Definir la función como un método estático de una clase en un lenguaje admitido por .NET Framework. Para obtener más información acerca de cómo programar funciones en Common Language Runtime, vea CLR User-Defined Functions. A continuación, compilar la clase para generar un ensamblado en .NET Framework mediante el compilador del lenguaje adecuado.
- Registrar el ensamblado en SQL Server mediante la instrucción CREATE ASSEMBLY. Para obtener más información acerca de los ensamblados de SQL Server, vea Ensamblados (motor de base de datos).
- Crear la función que hace referencia al ensamblado registrado mediante la instrucción CREATE FUNCTION.
[!NOTA] La implementación de un proyecto de SQL Server en Microsoft Visual Studio registra un ensamblado en la base de datos especificada para el proyecto. La implementación del proyecto también crea funciones CLR en la base de datos para todos los métodos anotados con el atributo SqlFunction. Para obtener más información, vea Deploying CLR Database Objects.
[!NOTA] La capacidad de SQL Server para ejecutar el código CLR se encuentra desactivada de manera predeterminada. Puede crear, modificar y quitar objetos de base de datos que hacen referencia a los módulos de códigos administrados; sin embargo, estas referencias no se ejecutarán en SQL Server a menos que se haya activado la opción clr enabled mediante sp_configure (Transact-SQL).
Obtener acceso a recursos externos
Las funciones CLR se pueden utilizar para obtener acceso a recursos externos tales como archivos, recursos de red, servicios Web y otras bases de datos (incluidas las instancias remotas de SQL Server). Para ello, es posible utilizar diversas clases en .NET Framework, como por ejemplo System.IO
, System.WebServices
, System.Sql
, etc. El ensamblado que contiene estas funciones debe estar configurado por lo menos con el conjunto de permisos EXTERNAL_ACCESS que tiene este objetivo. Para obtener más información, vea CREATE ASSEMBLY (Transact-SQL). El proveedor administrado cliente SQL se puede utilizar para obtener acceso a instancias remotas de SQL Server. No obstante, las conexiones vinculadas en bucles de retorno con el servidor de origen no están admitidas en las funciones CLR.
Para crear, modificar o quitar ensamblados de SQL Server
Para crear una función CLR
Vea también
Conceptos
Crear funciones definidas por el usuario (motor de base de datos)
Crear funciones de agregado definidas por el usuario
Ejecutar funciones definidas por el usuario (motor de base de datos)
Ver funciones definidas por el usuario
Otros recursos
Database Engine .NET Framework Programming