valores tipos tabla linea functions funciones con basicas avg sql-server database

sql-server - tipos - funciones sql server pdf



Funciones agregadas personalizadas en MS SQL Server? (1)

¿Cómo puedo crear una función de agregado personalizada en MS SQL Server? Un ejemplo ayudaría mucho.


SQL Server 2000 no admite oficialmente funciones de agregado personalizadas. Sin embargo, recientemente también necesitaba esa funcionalidad, y encontré este artículo esclarecedor:
http://weblogs.sqlteam.com/jeffs/articles/1490.aspx

Sin embargo, es un poco hack-ish: requiere acceso a los procedimientos extendidos sp_OA___ .

El resumen es que puede simular una función de agregado con una serie de cuatro funciones de contenedor, cada una de las cuales realiza una de las siguientes tareas:

  1. Cree un objeto ActiveX que pueda contener el estado dentro de la consulta. Llamar esto antes de ejecutar la consulta.
    • Realice la agregación real utilizando el objeto ActiveX.
    • Borre el estado del objeto ActiveX en los límites de GROUP BY
    • Destruye el objeto. Llámalo después de ejecutar la consulta y durante el manejo de errores.

A continuación, incluye los elementos 2 y 3 en la lista de selección para su consulta, y el elemento 2 también debe estar envuelto en una función agregada sin efecto existente como MAX () o MIN (). También puede usar esta técnica para funciones acumulativas para hacer cosas como números de fila.

Algunos de los comentarios sugieren que el optimizador puede intentar anular los efectos de agregación optimizando las llamadas en algunas circunstancias, aunque supongo que sería un caso muy raro. Sin embargo, encontré esta pregunta porque tomé esas advertencias lo suficientemente en serio como para seguir buscando algo mejor.