Compartir vía


Crear funciones de agregado definidas por el usuario

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores

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

Al igual que las funciones de agregado integradas proporcionadas en 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 cómo programar agregados definidos por el usuario en el CLR, consulte agregados definidos por el usuario en el CLR. Compile esta clase para generar un ensamblado CRL con el compilador de lenguaje correspondiente.

  • Registre el ensamblado en SQL Server mediante la instrucción CREATE ASSEMBLY. Para obtener más información sobre los ensamblados en SQL Server, vea Ensamblados (motor de base de datos).

  • Cree el agregado definido por el usuario que haga referencia al ensamblado registrado mediante la instrucción CREATE AGGREGATE.

La ejecución de código CLR está desactivada de forma predeterminada en SQL Server. Puede crear, modificar y quitar objetos de base de datos que hacen referencia a módulos de código administrado, pero estas referencias no se ejecutan en SQL Server, a menos que la opción de configuración de servidor clr habilitada esté habilitada mediante sp_configure.

La implementación de un SQL Server Project 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, consulte Implementación de objetos de base de datos CLR.

Crear, modificar o quitar un ensamblado

Creación de un agregado definido por el usuario