Partager via


Avantages de l'utilisation de code managé pour créer des objets de base de données

Outre le langage de programmation Transact-SQL, vous pouvez utiliser les langages .NET Framework pour créer des objets de base de données, et récupérer et mettre à jour des données pour les bases de données SQL Server. Dans les projets Visual Basic ou Visual C#, vous pouvez créer des procédures stockées, des déclencheurs, des agrégats, des types et des fonctions définis par l'utilisateur. Les objets de base de données écrits en code managé sont appelés objets Common Language Runtime SQL Server ou objets CLR SQL.

Notes

Par défaut, la fonctionnalité d'intégration du Common Language Runtime (CLR) est désactivée dans SQL Server. Pour utiliser des éléments de projet SQL Server, vous devez activer l'intégration du CLR. Pour ce faire, utilisez l'option clr enabled de la procédure stockée sp_configure. Pour plus d'informations, consultez la rubrique Option clr enabled sur le site Web Microsoft.

La liste suivante récapitule les avantages de l'utilisation d'un langage .NET Framework par rapport à Transact-SQL:

  • Modèle de programmation amélioré   Les langages .NET Framework proposent des constructions et des fonctions auxquelles les développeurs SQL Server n'avaient jusqu'à présent pas accès.

  • Sécurité et sûreté améliorées Le code managé s'exécute dans un environnement Common Language Runtime hébergé par le moteur de base de données. Cela permet d'améliorer la sécurité et la sûreté des objets de base de données .NET Framework par rapport aux procédures stockées étendues disponibles dans les versions précédentes de SQL Server. Lorsque vous utilisez des objets de base de données créés dans Visual Basic ou Visual C#, la sécurité d'accès du code de ces langages est associée aux autorisations basées sur les utilisateurs dans SQL Server.

  • Types et agrégats définis par l'utilisateur   Les types et les agrégats définis par l'utilisateur sont deux objets de base de données managés qui étendent les fonctions de stockage et d'interrogation de SQL Server.

  • Environnement de développement commun   Le développement de base de données est intégré dans l'environnement de développement Microsoft Visual Studio. Les développeurs se servent des mêmes outils pour développer et déboguer des objets de base de données et des scripts que ceux qu'ils utilisent pour écrire des composants et services .NET Framework de couche intermédiaire et client.

  • Meilleures Performances   Certaines fonctions, telles que celles qui exécutent des opérations mathématiques sur chaque ligne d'une base de données, peuvent offrir de meilleures performances lorsqu'elles se présentent sous la forme d'assemblys compilés générés à partir d'un projet Visual Basic ou plutôt que lorsqu'elles sont écrites en Transact-SQL, lequel interprète le code. Par exemple, on peut observer une amélioration des performances de certaines fonctions, particulièrement celles qui exécutent des opérations sur des entiers. Toutefois, les procédures stockées qui accèdent uniquement aux données n'offrent pas de meilleures performances.

  • Richesse du langage   Visual Basic ou Visual C# offrent des fonctions qui ne sont pas disponibles dans Transact-SQL, telles que des tableaux, une gestion sophistiquée des exceptions et la réutilisabilité du code.

  • Réutilisabilité du code   Une bibliothèque d'assemblys managés peut être créée et distribuée plus facilement qu'un script Transact-SQL.

  • L'utilisationVisual Basic ouVisual C# d'extensibilité peut créer deux objets de base de données à l'aide duquel ne peut pasTransact-SQL être créé : agrégats et types définis par l'utilisateur.

  • Application des compétences existantes Vous pouvez utiliser et améliorer vos compétences en matières de langages et d'environnement de développement avec lesquels vous êtes déjà familiarisé afin de créer des objets de base de données.

  • //Expérience développeur plus riche   Lorsque vous développez des objets de base de données à l'aide du modèle de projet SQL Server, vous bénéficiez d'une intégration complète au système de projet. Cela inclut la génération, le débogage et le déploiement sur plusieurs serveurs.

  • Stabilité et fiabilité   Les objets de base de données que vous créez à l'aide de Visual Basic ou de Visual C# sont plus sécurisés, plus stables, plus robustes et plus fiables que les procédures stockées étendues qui peuvent entraîner des fuites de mémoire ou d'autres problèmes réduisant les performances et la fiabilité du serveur. Lorsque vous exécutez les procédures stockées créées dans Visual Basic ou dans Visual C#, la gestion de la mémoire et le threading ne sont pas exécutés par la procédure stockée et ils sont donc gérés de manière plus fiable.

Procédures stockées et déclencheurs

Les procédures stockées sont une collection précompilée d'instructions de programmation qui exécutent des opérations dans la base de données et sont stockées sous un nom et traitées en tant qu'unité. Pour plus d'informations sur les procédures stockées, consultez la documentation SQL Server.

Un déclencheur est un genre spécial de procédure stockée qui est activée lorsque vous modifiez des données dans un tableau spécifié à l'aide d'une ou plusieurs opérations de modification des données : Update, INSERT ou SUPPRESSION. Vous pouvez également créer des déclencheurs au niveau de la base de données qui se déclenchent en réponse à des instructions de langage de définition de données (DDL). Ces déclencheurs peuvent être utilisés pour exécuter des tâches d'administration dans la base de données telles que l'audit et la régulation d'opérations de base de données. Pour plus d'informations sur les déclencheurs, consultez la documentation SQL Server.

Le développement de procédures stockées et de déclencheurs est amélioré par la richesse du langage Visual Basic et Visual C#, surtout lorsque vous implémentez la logique procédurale complexe nécessaire à l'application des règles métier. De plus, le .NET Framework contient un grand nombre de bibliothèques. Celles qui permettent de gérer de nombreux aspects de la cryptographie, les bibliothèques de calcul étendues et l'accès externe aux services Web, fichiers et systèmes de communication interentreprises ont un intérêt particulier.

Fonctions

Les fonctions agissent sur une ou plusieurs valeurs pour retourner une valeur scalaire ou une table. Pour plus d'informations sur les types des fonctions offerts par le langage de programmation Transact-SQL, consultez la documentation SQL Server.

Comme pour les procédures stockées et les déclencheurs, le développement des fonctions est amélioré par la richesse du langage Visual Basic et Visual C#, ainsi que par l'accès aux nombreuses bibliothèques contenues dans le .NET Framework.

Agrégats

Les fonctions d'agrégation sont utilisées pour récapituler toutes les données contenues dans une table. Elles exécutent un calcul sur un jeu de valeurs et retournent une valeur scalaire unique. Pour plus d'informations sur les fonctions d'agrégation fournies par le langage de programmation Transact-SQL, consultez la documentation SQL Server.

Pour compléter ces fonctions d'agrégation, vous pouvez définir de nouveaux agrégats qui exécutent des fonctions arithmétiques plus complexes. Par exemple, vous pouvez exécuter un calcul sur les données contenues dans de nombreuses lignes et retourner une valeur ou créer une chaîne concaténée.

Types définis par l'utilisateur

Les types spécifient la nature des données. Pour plus d'informations sur le jeu de types de données système fourni avec SQL Server, consultez la documentation SQL Server.

À l'aide de Visual Basic et de Visual C#, vous pouvez définir de nouveaux types afin de ne plus être limité aux types prédéfinis fournis avec SQL Server. Vous pouvez créer des types simples, tels que des codes postaux, ou des types plus complexes pour analyser les informations retournées par une transaction de carte de crédit. En outre, lorsque vous utilisez des types définis par l'utilisateur, les données peuvent être interprétées et manipulées à la fois dans le client SQL et dans SQL Server ; à l'aide d' ADO.NET, vous pouvez télécharger un assembly qui contient une définition de type provenant de SQL Server et l'utiliser pour examiner les données sur le client SQL.

Voir aussi

Tâches

Comment : créer un projet pour des objets de base de données qui utilisent l'intégration du Common Language Runtime SQL Server

Comment : créer et exécuter une procédure stockée SQL Server à l'aide de l'intégration du Common Language Runtime

Comment : créer et exécuter un déclencheur SQL Server à l'aide de l'intégration du Common Language Runtime

Comment : créer et exécuter un agrégat SQL Server à l'aide de l'intégration du Common Language Runtime

Comment : créer et exécuter une fonction définie par l'utilisateur SQL Server à l'aide de l'intégration du Common Language Runtime

Comment : créer et exécuter un type défini par l'utilisateur SQL Server à l'aide de l'intégration du Common Language Runtime

Procédure pas à pas : création d'une procédure stockée dans le code managé

Comment : déboguer une procédure stockée SQL CLR

Référence

Attributs pour les projets de base de données CLR SQL et les objets de base de données

Concepts

Présentation de l'intégration de CLR dans SQL Server (ADO.NET)

Avantages de l'utilisation de code managé pour créer des objets de base de données