Déploiement d'objets de base de données CLR

S’applique à :SQL Server

Le déploiement est le processus selon lequel une application ou un module fini est distribué en vue de son installation et de son exécution sur un autre ordinateur. À l’aide de Microsoft Visual Studio, vous pouvez développer des objets de base de données CLR (Common Language Runtime) et les déployer sur un serveur de test. Les objets de base de données managées peuvent également être compilés avec les fichiers de redistribution microsoft .NET Framework, au lieu de Visual Studio. Une fois compilés, les assemblys contenant les objets de base de données CLR peuvent ensuite être déployés sur un serveur de test à l’aide d’instructions Visual Studio ou Transact-SQL. Notez que Visual Studio .NET 2003 ne peut pas être utilisé pour le déploiement ou la programmation de l'intégration du CLR. SQL Server inclut le .NET Framework préinstallé et Visual Studio .NET 2003 ne peut pas utiliser les assemblys .NET Framework 2.0.

Une fois que les méthodes CLR ont été testées et vérifiées sur le serveur de test, elles peuvent être distribuées sur les serveurs de production à l'aide d'un script de déploiement. Le script de déploiement peut être généré manuellement ou à l’aide de SQL Server Management Studio (voir la procédure plus loin dans cette rubrique).

La fonctionnalité d’intégration CLR est désactivée par défaut dans SQL Server et doit être activée pour pouvoir utiliser des assemblys CLR. Pour plus d’informations, consultez Activation de l’intégration du CLR.

Déploiement de l'assembly sur le serveur de test

À l'aide de Visual Studio, vous pouvez développer des fonctions, procédures, déclencheurs, types définis par l'utilisateur (UDT) ou agrégats définis par l'utilisateur (UDA) CLR et les déployer sur un serveur de test. Ces objets de base de données managés peuvent également être compilés avec les compilateurs de ligne de commande, tels que csc.exe et vbc.exe, inclus avec les fichiers de redistribution .NET Framework. L’environnement de développement intégré Visual Studio n’est pas nécessaire pour développer des objets de base de données managés pour SQL Server.

Assurez-vous que toutes les erreurs et avertissements du compilateur sont résolus. Les assemblys contenant les routines CLR peuvent ensuite être inscrits dans une base de données SQL Server à l’aide d’instructions Visual Studio ou Transact-SQL.

Notes

Le protocole réseau TCP/IP doit être activé sur le SQL Server instance afin d’utiliser Microsoft Visual Studio pour le développement, le débogage et le développement à distance. Pour plus d’informations sur l’activation du protocole TCP/IP sur le serveur, consultez Configurer les protocoles clients.

Pour déployer l'assembly à l'aide de Visual Studio

  1. Générez le projet en sélectionnant Générer<le nom> du projet dans le menu Générer .

  2. Résolvez tous les avertissements et erreurs de build avant de déployer l'assembly sur le serveur de test.

  3. Sélectionnez Déployer dans le menu Générer . L’assembly est ensuite inscrit dans le SQL Server instance et la base de données spécifiés lors de la création initiale du projet SQL Server dans Visual Studio.

Pour déployer l'assembly à l'aide de Transact-SQL

  1. Compilez l'assembly à partir du fichier source à l'aide des compilateurs de ligne de commande fournis avec le .NET Framework.

  2. Pour les fichiers sources Microsoft Visual C# :

  3. csc /target:library C:\helloworld.cs

  4. Pour les fichiers sources Microsoft Visual Basic :

vbc /target:library C:\helloworld.vb

Ces commandes lancent le compilateur Visual C# ou Visual Basic à l’aide de l’option /target pour spécifier la création d’une DLL de bibliothèque.

  1. Résolvez tous les avertissements et erreurs de build avant de déployer l'assembly sur le serveur de test.

  2. Ouvrez SQL Server Management Studio sur le serveur de test. Créez une requête, connectée à une base de données de test appropriée (tel qu'AdventureWorks).

  3. Créez l’assembly dans le serveur en ajoutant le code Transact-SQL suivant à la requête.

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;

  1. La procédure, la fonction, l’agrégat, le type défini par l’utilisateur ou le déclencheur doivent ensuite être créés dans le instance de SQL Server. Si l’assembly HelloWorld contient une méthode nommée HelloWorld dans la classe Procedures, vous pouvez ajouter le code Transact-SQL suivant à la requête pour créer une procédure appelée hello in SQL Server.

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

Pour plus d’informations sur la création des différents types d’objets de base de données managés dans SQL Server, consultez CLR User-Defined Functions, CLR User-Defined Aggregates, CLR User-Defined Types, CLR Stored Procedures et CLR Triggers.

Déploiement de l'assembly sur des serveurs de production

Une fois que les objets de base de données CLR ont été testés et vérifiés sur le serveur de test, ils peuvent être distribués sur les serveurs de production. Pour plus d’informations sur le débogage d’objets de base de données managées, consultez Débogage d’objets de base de données CLR.

Le déploiement d’objets de base de données managés est similaire à celui des objets de base de données standard (tables, routines Transact-SQL, etc.). Les assemblys contenant les objets de base de données CLR peuvent être déployés sur d'autres serveurs à l'aide d'un script de déploiement. Le script de déploiement peut être généré à l’aide de la fonctionnalité « Générer des scripts » de Management Studio. Le script de déploiement peut également être généré manuellement, ou généré à l'aide de « Générer des scripts » et modifié manuellement. Une fois le script de déploiement généré, il peut être exécuté sur d’autres instances de SQL Server pour déployer les objets de base de données managés.

Pour générer un script de déploiement à l'aide de « Générer des scripts »

  1. Ouvrez Management Studio et connectez-vous à l’SQL Server instance où l’assembly managé ou l’objet de base de données à déployer est inscrit.

  2. Dans le Explorateur d'objets, développez le nom> du< serveur et les arborescences Bases de données. Cliquez avec le bouton droit sur la base de données dans laquelle l’objet de base de données managé est inscrit, sélectionnez Tâches, puis Sélectionnez Générer des scripts. L'Assistant Script s'ouvre.

  3. Sélectionnez la base de données dans la zone de liste, puis cliquez sur Suivant.

  4. Dans le volet Choisir les options de script , cliquez sur Suivant, ou modifiez les options, puis cliquez sur Suivant.

  5. Dans le volet Choisir les types d’objets , choisissez le type d’objet de base de données à déployer. Cliquez sur Suivant.

  6. Pour chaque type d’objet sélectionné dans le volet Choisir des types d’objets, un volet Choisir <un type> est présenté. Dans ce volet, vous pouvez choisir parmi toutes les instances de ce type d'objet de base de données inscrites dans la base de données spécifiée. Sélectionnez un ou plusieurs objets, puis cliquez sur Suivant.

  7. Le volet Options de sortie apparaît lorsque tous les types d’objets de base de données souhaités ont été sélectionnés. Sélectionnez Script to file (Script to file) et spécifiez un chemin d’accès au fichier pour le script. Sélectionnez Suivant. Passez en revue vos sélections, puis cliquez sur Terminer. Le script de déploiement est enregistré dans le chemin d'accès relatif spécifié.

Scripts de post-déploiement

Vous pouvez exécuter un script de post-déploiement.

Pour ajouter un script de post-déploiement, ajoutez un fichier nommé postdeployscript.sql dans votre répertoire de projet Visual Studio. Par exemple, cliquez avec le bouton droit sur votre projet dans Explorateur de solutions et sélectionnez Ajouter un élément existant. Ajoutez le fichier à la racine du projet, plutôt que dans le dossier Scripts de test.

Lorsque vous cliquez sur Déployer, Visual Studio exécute ce script après le déploiement de votre projet.

Voir aussi

Concepts de programmation pour l'intégration du CLR