Création d'objets SQL Server dans du code managé

Généralement, lorsque vous définissez des objets de base de données, vous utilisez le langage de programmation Transact-SQL. Toutefois, vous pouvez également utiliser des langages .NET Framework pour définir des objets de base de données, tels que des procédures stockées et des déclencheurs, et récupérer et mettre à jour des données pour les bases de données SQL Server. Ces objets sont souvent connus sous le nom d'objets Common Language Runtime SQL Server, ou objets CLR SQL.

Pour créer un objet de base de données, vous devez créer un projet SQL Server, y ajouter les éléments requis, puis ajouter du code à ces éléments. Vous devez ensuite générer le projet dans un assembly et le déployer sur SQL Server.

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 CLR SQL, 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.

Génération, déploiement et débogage

Lorsque vous générez votre projet, il est compilé dans un assembly qui peut être déployé sur la base de données référencée dans le projet, ainsi que débogué.

Notes

Outre la génération, le déploiement et le débogage en trois étapes distinctes, vous pouvez également utiliser la commande Démarrer (F5) ou la commande Exécuter sans débogage (CTRL+F5) pour générer l'assembly, le déployer dans base de données et déboguer l'objet de base de données. Votre projet de base de données CLR SQL doit être défini comme projet de démarrage si vous souhaitez utiliser F5 ou CTRL+F5. Pour plus d'informations, consultez Comment : définir des projets de démarrage.

Vous pouvez ajouter éventuellement des instructions Transact-SQL aux scripts PreDeployScript.sql et PostDeployScript.sql. Vous pouvez choisir de procéder ainsi si vous devez exécuter des actions sur la base de données avant ou après avoir déployé le projet de base de données CLR SQL.

Avant de pouvoir déboguer l'objet de base de données, vous devez ajouter du Transact-SQL au script Test.sql ou vous pouvez ajouter le même code Transact-SQL à une instance de l'éditeur Transact-SQL connecté à la base de données sur laquelle vous avez déployée le projet. Le script est essentiel lors du débogage, car il exécute dans la base de données les actions nécessaires au démarrage et au test de l'objet de base de données. Si votre projet de base de données CLR SQL contient plusieurs objets de base de données, le script doit inclure du code Transact-SQL pour tester chaque objet de base de données que vous souhaitez déboguer.

Cette spécification de script de débogage diffère d'un projet qui crée et exécute un programme exécutable indépendant, tel qu'un projet de Windows Forms. Cela est dû au fait que les objets de base de données s'exécutent uniquement en réponse à des actions ou des appels dans la base de données. Par exemple, un déclencheur peut être activé lors de l'insertion d'une nouvelle ligne dans une table. Par conséquent, le script doit insérer une nouvelle ligne dans une table pour activer le déclencheur. Les résultats du déclencheur sont affichés dans la Fenêtre Sortie de Visual Studio pour vous permettre de déterminer si le déclencheur fonctionne correctement.

Important

Vous devez avoir les autorisations appropriées pour déployer ou déboguer un assembly CLR SQL. Pour plus d'informations, consultez Autorisations requises pour les fonctionnalités de base de données de Visual Studio.

Vous trouverez un exemple de code pour chaque type d'objet de base de données dans la rubrique relative au type correspondant.

Débogage de l'objet de base de données

Lorsque vous déboguez un objet de base de données, l'assembly est généré, déployé sur la base de données et débogué. Lors du débogage d'un objet de base de données qui a été précédemment généré et déployé, l'assembly n'est à nouveau générée que si le projet a été modifié depuis sa génération précédente. L'assembly est toujours supprimé de la base de données et est à nouveau copié. Pour plus d'informations, consultez Débogage d'objets de base de données utilisant du code managé (débogage CLR SQL).

Pour activer le débogage distant

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet CLR SQL pour lequel vous souhaitez activer le débogage distant, puis cliquez sur Propriétés.

  2. Cliquez sur l'onglet Déployer.

  3. Sélectionnez Déployer le code.

  4. Dans le menu Fichier, cliquez sur Enregistrer les éléments sélectionnés.

Pour déboguer l'objet de base de données

  1. Dans l'Explorateur de solutions, cliquez sur la solution.

  2. Dans le menu Déboguer, cliquez sur Démarrer.

  3. Dans la liste Afficher la sortie à partir de de la fenêtre Sortie, choisissez Sortie de base de données pour afficher les résultats.

Tâches courantes

Tâches courantes

Contenu de support

En savoir plus sur les projets de base de données du langage SQL CLR : Avoir connaissance des avantages des objets de base de données de l'infrastructure de developing.NET permettantSQL Server à l'aide de code managé. Le code managé offre plusieurs avantages comparé àTransact-SQL.

Pratique en matière pratique de commande get : Suivez la procédure pas - à - pas pour vous familiariser avec la création, déployer et tester un projet qui définit une procédure stockée à l'aide de code managé.

Créez un projet de base de données du langage SQL CLR : Créez un projet inVisual Basic ouVisual C# qui contient les définitions pour les objets de base de données que vous souhaitez définir.

Ajoutez des éléments au projet de base de données du langage SQL CLR : Lorsque vous créez unSQL Server projet, il contient uniquement des références et des informations de l'assembly. Pour créer des objets de base de données, vous devez ajouter des éléments au projet, puis ajouter le code aux éléments. Vous pouvez ajouter des procédures stockées, des agrégats, des déclencheurs, des fonctions et des types définis par l'utilisateur. Un attribut doit être appliqué à chaque projet SQL Server et à chaque objet qu'il contient.

Vous pouvez définir plusieurs objets dans un projet. Vous pouvez choisir d'utiliser plusieurs projets si les objets doivent être mis à jour indépendamment ou si tous les objets ne sont pas utilisés dans chaque base de données vers laquelle vous déploierez l'assembly résultant.

Déployez l'assembly à SQL Server et examinez-le : Après avoir créé le projet, ajouter des éléments et ajouté le code à ces éléments, vous devez déployer l'assembly résultant vers a avantSQL Server de pouvoir utiliser les objets que vous avez définis. Si votre projet SQL Server contient une référence à un ou plusieurs objets dans un autre projet SQL Server, vous ne pourrez pas utiliser la commande Deploy sur le premier projet pour déployer le deuxième projet (référencé). Après avoir déployé l'assembly, vous pouvez effectuer des tests simples en exécutant un script de test.

Objets de base de données à partir de l'infrastructure .NET déployés par débogage : Si votre objet de base de données ne fonctionne pas comme prévu, vous pouvez déboguer qu'objet pour identifier et corriger les erreurs de code.

Référence

  • System.Data
    Décrit l'espace de noms System.Data et fournit un tableau des classes pertinentes.

  • System.Data.Sql
    Décrit l'espace de noms System.Data.Sql et fournit une table des classes pertinentes.

  • System.Data.SqlTypes
    L'espace de noms System.Data.SqlTypes fournit des classes pour les types de données natifs dans SQL Server 2005.

  • Microsoft.SqlServer.Server
    Décrit l'espace de noms Microsoft.SqlServer.Server et fournit une table des classes pertinentes.

Scénarios associés

  • Le développement de bases de données dans un environnement de travail en équipe d'objets de base de données de cette infrastructure reference.NET : Vous pouvez utiliser des fonctionnalités supplémentairesVisual Studio pour réduire les risques et la vitesse d'aide du développement d'applications de base de données dans un environnement de travail en équipe. Vous pouvez définir votre schéma de base de données dans un projet de base de données, placer vos projets sous contrôle de version et créer des tests unitaires de base de données pour vérifier le comportement attendu.