Fonctions d'agrégation CLR (SQL Server)

Une fonction d'agrégation effectue un calcul sur un jeu de valeurs et renvoie une valeur unique. Jusque là, Microsoft SQL Server prenait en charge uniquement des fonctions d'agrégation intégrées, telles que SUM ou MAX, qui fonctionnent sur un jeu de valeurs scalaires d'entrée et génèrent une seule valeur agrégée à partir de ce jeu. L'intégration de SQL Server et du CLR (common language runtime) Microsoft .NET Framework permet maintenant de créer des fonctions d'agrégation personnalisées dans le code géré, et de rendre ces fonctions accessibles à Transact-SQL ou à un autre code géré. PowerAMC modélise les fonctions d'agrégation sous la forme d'objets étendus dotés du stéréotype <<Aggregate>>.

Création d'une fonction d'agrégation

Vous pouvez créer une fonction d'agrégation de l'une des façons suivantes :
  • Sélectionnez Modèle > Agrégats pour afficher la boîte de dialogue Liste des agrégats, puis cliquez sur l'outil Ajouter une ligne.

  • Pointez sur le modèle (ou sur un package) dans l'Explorateur d'objets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Agrégat.

Propriétés d'une fonction d'agrégation

Vous pouvez modifier les propriétés d'un objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés d'une fonction d'agrégation, double-cliquez sur son symbole dans le diagramme ou sur l'entrée correspondante dans le dossier Agrégats de l'Explorateur d'objets.

Les attributs étendus suivants sont disponibles sur l'onglet Microsoft :

Nom

Description

Schéma

Spécifie le nom du schéma auquel la fonction d'agrégation appartient.

Nom dans le script : Owner

Assembly

Spécifie l'assembly à lier à la fonction d'agrégation.

Nom dans le script : Assembly

Nom de classe

Spécifie le nom de la classe dans l'assembly qui met en oeuvre la fonction d'agrégation.

Si le nom de la classe n'est pas spécifié, SQL Server suppose qu'il est identique à celui de l'agrégat.

Nom dans le script : Class

Nom de paramètre

[v2005] Spécifie le nom du paramètre d'entrée.

Nom dans le script : InputParameterName

Type

[v2005] Spécifie le type de paramètre d'entrée. Tous les types de données scalaires ou les types CLR définis par l'utilisateur peuvent être utilisés, à l'exception de text, ntext, et image.

Nom dans le script : InputParameterType

Type de résultat

Spécifie le type de résultat de la fonction d'agrégation. Tous les types de données scalaires ou les types CLR définis par l'utilisateur peuvent être utilisés, à l'exception de text, ntext et de image.

Nom dans le script : ReturnType

Longueur

Spécifie la longueur du type de données de résultats.

Nom dans le script : ReturnTypeLength

Précision

Spécifie la précision du type de données de résultats.

Nom dans le script : ReturnTypePrec

Pour la v2008 et les versions supérieures, l'onglet Paramètres permet de répertorier le nom, le type, la longueur et la précision de chaque paramètre.