Crear funciones de agregado definidas por el usuario

Es posible crear un objeto de base de datos en SQL Server programado en un ensamblado CLR.Los objetos de base de datos que pueden aprovechar el completo modelo de programación que proporciona CLR incluyen desencadenadores, procedimientos almacenados, funciones, funciones de agregado y tipos.

Al igual que las funciones de agregado integradas que proporciona Transact-SQL, las funciones de agregado definidas por el usuario realizan un cálculo en un conjunto de valores y devuelven un único valor.

La creación de una función de agregado definida por el usuario en SQL Server implica estos pasos:

  • Establecer la función de agregado definida por el usuario como una clase en un lenguaje de Microsoft compatible con .NET Framework. Para obtener más información sobre la programación de funciones de agregado definidas por el usuario en CRL, vea Agregados definidos por el usuario de CLR. Compile esta clase para generar un ensamblado CRL con el compilador de lenguaje correspondiente.

  • Registrar el ensamblado en SQL Server con 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 de agregado definida por el usuario que hace referencia al ensamblado registrado con la instrucción CREATE AGGREGATE.

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 un agregado definido por el usuario en la base de datos para todas las definiciones de clase anotadas con el atributo SqlUserDefinedAggregate. Para obtener más información, vea Implementar objetos de base de datos de CLR.

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).

Para crear, modificar o quitar un ensamblado

Para crear una función de agregado definida por el usuario