Créer des agrégats définis par l'utilisateur
S’applique à : SQL Server 2016 (13.x) et versions ultérieures
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 utiliser le 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.
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 font référence à des modules de code managé, mais ces références ne s'exécuteront pas dans SQL Server si l'option clr enabled n'est pas activée à l'aide de sp_configure (Transact-SQL).
Le déploiement d’un projet SQL Server dans Microsoft Visual Studio a pour effet d’inscrire un assembly dans la base de données qui a été 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.