Partager via


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

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. Microsoft Visual Studio vous permet de développer des objets de base de données CLR (Common Language Runtime) et de les déployer sur un serveur de test. Les objets de base de données managés peuvent également être compilés avec les fichiers de redistribution Microsoft .NET Framework, au lieu de Visual Studio. Une fois compilés, les assemblys qui contiennent les objets de base de données CLR peuvent être déployés sur un serveur de test à l'aide de Visual Studio ou d'instructions 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 du 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.

[!REMARQUE]

À compter de SQL Server 2005, dans une base de données SQL Server avec un niveau de compatibilité de 80, il n'est pas possible de créer des procédures stockées, des fonctions, des agrégats, des déclencheurs ou des types définis par l'utilisateur managés. Pour bénéficier de ces fonctionnalités d'intégration du CLR de SQL Server, utilisez la procédure stockée sp_dbcmptlevel (Transact-SQL) pour attribuer la valeur 90 au niveau de compatibilité.

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 de Visual Studio ou d'instructions 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 et le débogage distants. Pour plus d'informations sur l'activation du protocole TCP/IP sur le serveur, consultez Configuration des protocoles réseau client.

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

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

  2. Résolvez toutes les erreurs et avertissements de génération avant de déployer l'assembly sur le serveur de test.

  3. Sélectionnez Déployer dans le menu Générer. L'assembly sera ensuite inscrit dans l'instance et la base de données SQL Server spécifiées 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 en utilisant l'option /target pour spécifier la génération d'une DLL de bibliothèque.

  1. Résolvez toutes les erreurs et avertissements de génération 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, fonction, agrégat, type défini par l'utilisateur ou déclencheur doit ensuite être créé(e) dans l'instance de SQL Server. Si l'assembly HelloWorld contient une méthode nommée HelloWorld dans la classe Procedures, le code Transact-SQL suivant peut être ajouté à la requête pour créer une procédure nommé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 Fonctions CLR définies par l'utilisateur, Agrégats CLR définis par l'utilisateur, Types CLR définis par l'utilisateur, Procédures stockées du CLR et 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 des objets de base de données managés, consultez Débogage d'objets de base de données CLR.

Le déploiement d'objets de base de données managés est semblable à celui des objets de base de données normaux (tables, routines Transact-SQL, et ainsi de suite). 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'instance SQL Server où l'assembly managé ou objet de base de données à déployer est inscrit.

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

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

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

  5. Dans le volet Sélectionner 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 Sélectionner les types d'objets, un volet Choisir <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 et cliquez sur Suivant.

  7. 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 Générer un script sur fichier et spécifiez un chemin d'accès relatif pour le script. Sélectionnez Suivant. Examinez vos sélections et 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 l'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.