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 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 sobre los ensamblados en 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.

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 hagan referencia a módulos de código administrado, pero estas referencias no se ejecutarán en SQL Server a menos que la opción clr enabled esté habilitada mediante sp_configure (Transact-SQL).

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 más información, consulte Deploying CLR Database Objects.

Crear, modificar o quitar un ensamblado

Creación de un agregado definido por el usuario

Consulte también