Partager via


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

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 tirer parti du 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 façon de programmer des agrégats définis par l’utilisateur dans le CLR, consultez User-Defined agrégats CLR. Compilez cette classe pour générer 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'assemblage inscrit en utilisant l'instruction CREATE AGGREGATE.

Remarque

Le déploiement d’un projet SQL Server dans MicrosoftVisual Studio inscrit un assembly dans la base de données spécifiée pour le projet. Le déploiement du projet crée également un agrégat défini par l’utilisateur dans la base de données pour toutes les définitions de classes annotées avec l’attribut SqlUserDefinedAggregate . Pour plus d’informations, consultez Déploiement d’objets de base de données CLR.

Remarque

La capacité de SQL Server à exécuter le code CLR est désactivée par défaut. 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).

Pour créer, modifier ou supprimer un assembly

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

Voir aussi

Concepts de programmation d’intégration du Common Language Runtime (CLR)