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. Vous pouvez également compiler les objets de base de données managé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 (consultez 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 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.
Remarque
Le protocole réseau TCP/IP doit être activé sur l’instance SQL Server afin d’utiliser Microsoft Visual Studio pour le développement à distance, le débogage et le développement. Pour plus d’informations sur l’activation du protocole TCP/IP sur le serveur, consultez Configurer des protocoles clients.
Pour déployer l'assembly à l'aide de Visual Studio
Générez le projet en sélectionnant Générer<le nom> du projet dans le menu Générer .
Résolvez tous les avertissements et erreurs de build avant de déployer l'assembly sur le serveur de test.
Sélectionnez Déployer dans le menu Générer . L’assembly est ensuite inscrit dans l’instance et la base de données SQL Server spécifiées lors de la création du projet SQL Server dans Visual Studio.
Pour déployer l'assembly à l'aide de Transact-SQL
Compilez l'assembly à partir du fichier source à l'aide des compilateurs de ligne de commande fournis avec le .NET Framework.
Pour les fichiers sources Microsoft Visual C# :
csc /target:library C:\helloworld.cs
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 génération d’une DLL de bibliothèque.
Résolvez tous les avertissements et erreurs de build avant de déployer l'assembly sur le serveur de test.
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).
Créez l’assembly dans le serveur en ajoutant le transact-SQL suivant à la requête.
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;
- 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 l’instance de SQL Server. Si l’assembly HelloWorld contient une méthode nommée HelloWorld dans la classe Procedures , la requête Transact-SQL suivante peut être ajoutée à la requête pour créer une procédure appelée hello dans 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 les fonctions CLR définies par l’utilisateur, les agrégats CLR définis par l’utilisateur, les types CLR définis par l’utilisateur, les procédures stockées CLR et les déclencheurs CLR.
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és, consultez Débogage des 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 »
Ouvrez Management Studio et connectez-vous à l’instance SQL Server où l’assembly managé ou l’objet de base de données à déployer est inscrit.
Dans l’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ée est inscrit, sélectionnez Tâches, puis sélectionnez Générer des scripts. L'Assistant Script s'ouvre.
Sélectionnez la base de données dans la zone de liste, puis cliquez sur Suivant.
Dans le volet Choisir les options de script, cliquez sur Suivant, ou modifiez les options, puis cliquez sur Suivant.
Dans le volet Choisir des types d’objets, choisissez le type d’objet de base de données à déployer. Sélectionnez Suivant.
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.
Le volet Options de sortie s’affiche lorsque tous les types d’objets de base de données souhaités ont été sélectionnés. Sélectionnez Script à fichier et spécifiez un chemin d’accès de fichier pour le script. Cliquez sur 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, puis 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.