Création d'agrégats définis par l'utilisateur

Vous pouvez créer un objet de base de données dans SQL Server programmé dans un assembly CLR. Les objets de base de données qui peuvent tirer parti du modèle de programmation riche fourni par le CLR sont notamment les déclencheurs, les procédures stockées, les fonctions, les fonctions d'agrégation et les types.

Au même titre que les fonctions d'agrégation intégrées fournies dans Transact-SQL, les fonctions d'agrégation définies par l'utilisateur réalisent un calcul sur un ensemble de valeurs et retournent une seule valeur.

La création d'une fonction d'agrégation définie par l'utilisateur dans SQL Server suppose les étapes suivantes :

  • Définissez la fonction d'agrégation définie par l'utilisateur en tant que classe dans un langage Microsoft .NET Framework. Pour plus d'informations sur la programmation d'agrégats définis par l'utilisateur dans le CLR, consultez Agrégats CLR définis par l'utilisateur. Compilez cette classe pour créer un assembly CLR à l'aide du compilateur de langage approprié.

  • Inscrivez l'assembly dans SQL Server à l'aide de l'instruction CREATE ASSEMBLY. Pour plus d'informations sur les assemblys dans SQL Server, consultez Assemblys (moteur de base de données).

  • Créez l'agrégat défini par l'utilisateur qui fait référence à l'assembly inscrit à l'aide de l'instruction CREATE AGGREGATE.

[!REMARQUE]

Le déploiement d'un projet SQL Server dans MicrosoftVisual Studio enregistre un assembly dans la base de données spécifiée pour le projet. Le déploiement du projet crée aussi une agrégation définie par l'utilisateur dans la base de données pour toutes les définitions de classe annotées par l'attribut SqlUserDefinedAggregate. Pour plus d'informations, consultez Déploiement d'objets de base de données CLR.

[!REMARQUE]

La fonctionnalité d'exécution du code CLR par SQL Server est désactivée par défaut. Vous pouvez créer, modifier et supprimer des objets de base de données qui font référence à des modules de code managé, mais ces références ne s'exécutent pas dans SQL Server si l'option clr enabled n'est pas activée à l'aide de sp_configure (Transact-SQL).

Pour créer, modifier ou supprimer un assembly

Pour créer un agrégat défini par l'utilisateur