Créer des agrégats définis par l’utilisateur

S’applique à : SQL Server 2016 (13.x) et ultérieur

Vous pouvez créer un objet de base de données à l’intérieur de SQL Server programmé dans un assembly CLR. Les objets de base de données qui peuvent utiliser le modèle de programmation enrichi fourni par le CLR incluent des déclencheurs, des procédures stockées, des fonctions, des fonctions d’agrégation et des types.

Comme les fonctions d’agrégation intégrées fournies dans Transact-SQL, les fonctions d’agrégation définies par l’utilisateur effectuent un calcul sur un ensemble de valeurs et retournent une valeur unique.

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

  • Définissez la fonction d’agrégation définie par l’utilisateur en tant que classe dans un langage pris en charge par 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.

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

Le déploiement d’un projet SQL Server dans Microsoft Visual Studio inscrit un assembly dans la base de données spécifiée pour le projet. Le déploiement du projet crée aussi les fonctions CLR dans la base de données pour toutes les méthodes annotées avec l’attribut SqlFunction . Pour plus d’informations, consultez Déploiement d’objets de base de données CLR.

Créer, modifier ou supprimer un assembly

Créer un agrégat défini par l’utilisateur

Voir aussi