Comment : créer un projet pour des objets de base de données qui utilisent l'intégration du Common Language Runtime SQL Server
Les projets SQL Server dans Visual Studio permettent de créer des procédures stockées, des déclencheurs, des agrégats, des fonctions et des types définis par l'utilisateur à l'aide de langages .NET Framework tels que Visual Basic et Visual C#. Ces projets SQL Server requièrent une référence à SQL Server 2005 ou à des versions ultérieures de SQL Server. Ces objets sont souvent connus sous le nom d'objets Common Language Runtime SQL Server, ou objets CLR SQL.
Important
Si vous souhaitez développer des assemblys CLR SQL pour SQL Server 2005 ou SQL Server 2008, le .NET Framework version 3.5 doit être installé sur votre ordinateur de développement. SQL Server 2005 et SQL Server 2008 requièrent que les assemblys CLR SQL ciblent la version 2.0, 3.0 ou 3.5 du .NET Framework. Vous pouvez installer Microsoft .NET Framework 3.5 à partir du site Web Microsoft.
Après avoir créé un projet de base de données CLR SQL, vous créez les objets de base de données que vous voulez déployer sur SQL Server. Le tableau suivant fournit des liens vers des rubriques d'aide décrivant la création des objets de base de données disponibles :
Objet de base de données |
Information |
---|---|
Procédure stockée |
|
Déclencheur |
|
Aggregate |
|
Fonction définie par l'utilisateur |
|
Type défini par l'utilisateur |
Notes
Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.
Création d'un projet
Pour créer un nouveau projet SQL Server
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Sous Modèles installés, développez le nœud Base de données, puis cliquez sur SQL Server.
Dans la liste de modèles, cliquez sur l'icône qui correspond au type de projet que vous souhaitez créer. Par exemple, pour créer un projet CLR SQL qui utilise Visual C#, cliquez sur Projet de base de données CLR SQL Visual C#.
Dans la liste des Frameworks cibles, qui se trouve au-dessus de la liste des modèles, cliquez sur la version du .Net Framework qui correspond à la version de SQL Server sur laquelle vous projetez de déployer le projet de base de données CLR SQL.
Important
SQL Server 2005 et SQL Server 2008 prennent uniquement en charge les projets SQL Server générés avec la version 2.0, 3.0 ou 3.5 du .NET Framework. Si vous essayezSQL Server de déployer un projet versSQL Server 2005 ouSQL Server 2008, une erreur s'affiche : Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (où AssemblyName est le nom de l'assembly que vous déployez).
Dans Nom, spécifiez le nom que vous souhaitez utiliser pour le projet.
Cliquez sur OK.
Configuration du projet SQL Server
Une fois que vous avez créé votre projet SQL Server, vous pouvez modifier plusieurs propriétés de projet avant de déployer votre projet avec succès.
Pour configurer les propriétés du projet SQL Server
Dans l'Explorateur de solutions, sélectionnez le projet pour lequel vous souhaitez configurer des propriétés.
Dans le menu Projet, cliquez sur Propriétés de NomProjet, où NomProjet est le nom que vous avez donné au projet SQL Server.
Sous l'onglet Application, dans Nom de l'assembly, spécifiez le nom que vous souhaitez donner à l'assembly généré à partir de votre projet SQL Server.
Si vous avez déjà spécifié une version du .NET Framework prise en charge par la version de SQL Server sur laquelle vous projetez de déployer le projet de base de données CLR SQL, vous pouvez passer à l'étape 10.
Si vous utilisez Visual Basic, passez à étape 7.
Sous l'onglet Application, dans Framework cible, cliquez sur la version du .NET Framework qui correspond à la version de SQL Server sur laquelle vous projetez de déployer le projet de base de données CLR SQL.
Important
SQL Server 2005 et SQL Server 2008 prennent uniquement en charge les projets SQL Server générés avec la version 2.0, 3.0 ou 3.5 du .NET Framework. Si vous essayezSQL Server de déployer un projet versSQL Server 2005 ouSQL Server 2008, une erreur s'affiche : Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (où AssemblyName est le nom de l'assembly que vous déployez).
Passez à l'étape 10 (les étapes 7, 8 et 9 sont uniquement applicables à Visual Basic
Sous l'onglet Compiler, cliquez sur Options avancées de compilation.
Dans la boîte de dialogue Paramètres avancés du compilateur, dans Framework cible, cliquez sur la version du .NET Framework qui correspond à la version de SQL Server sur laquelle vous projetez de déployer le projet de base de données CLR SQL.
Important
SQL Server 2005 et SQL Server 2008 prennent uniquement en charge les projets SQL Server générés avec la version 2.0, 3.0 ou 3.5 du .NET Framework. Si vous essayezSQL Server de déployer un projet versSQL Server 2005 ouSQL Server 2008, une erreur s'affiche : Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (où AssemblyName est le nom de l'assembly que vous déployez).
Cliquez sur OK.
Sous l'onglet Base de données, dans Propriétaire de l'assembly, tapez le nom d'un utilisateur ou d'un rôle en tant que propriétaire de l'assembly.
Important
Il doit s'agir du nom d'un rôle dont l'utilisateur actuel est membre ou l'utilisateur actuel doit disposer de l'autorisation IMPERSONATE. Si vous ne spécifiez aucun propriétaire pour l'assembly, la propriété est attribuée à l'utilisateur actuel. Ce paramètre correspond à l'argument nom_propriétaire AUTHORIZATION pour l'instruction CREATE ASSEMBLY SQL Server. Pour plus d'informations, consultez CREATE ASSEMBLY (Transact-SQL) sur le site Web Microsoft.
Dans le menu Fichier, cliquez sur Enregistrer tout.
Si vous souhaitez créer un objet CLR SQL qui utilise la sérialisation XML, exécutez les étapes supplémentaires suivantes décrites dans « Création d'objets CLR SQL qui utilisent la sérialisation XML ».
Création d'objets CLR SQL qui utilisent la sérialisation XML
Si vous créez un service Web, vous pouvez activer l'option Générer un assembly de sérialisation dans les propriétés de génération. Toutefois, lorsque vous déployez l'assembly qui contient vos objets CLR SQL, l'assembly de sérialisation XML n'est pas créé sur le serveur cible. Vous devez ajouter une instruction au script PostDeployScript.sql pour créer cet assembly.
Notes
Si vous créez un service Web, vous devez définir votre jeu d'autorisations sur External_Access ou Unsafe, et le paramètre Fiable de la base de données cible doit être activé.
Pour créer l'assembly XMLSerializer pour un assembly CLR SQL
Dans l'Explorateur de solutions, développez le projet CLR SQL que vous souhaitez déployer, puis double-cliquez sur le script PostDeployScript.sql.
Dans l'éditeur de code, ajoutez l'instruction Transact-SQL suivante au script :
CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll'
Où SqlClassLibraryXML désigne le nom que vous souhaitez donner à l'assembly, path désigne le chemin d'accès à l'assembly du sérialiseur et assemblyname.XmlSerializers.dll désigne le nom de l'assembly du sérialiseur.
Dans le menu Fichier, cliquez sur Enregistrer PostDeployScript.dll.
Connexion à une base de données SQL Server
Les projets de base de données CLR SQL requièrent une connexion à une base de données qui exécute SQL Server 2005 ou version ultérieure. Si les connexions aux bases de données SQL Server 2005 sont disponibles dans l'Explorateur de serveurs, elles figurent dans la boîte de dialogue Ajouter une référence de base de données. Si vous envisagez de déployer l'assembly que vous générez à partir des projets SQL Server en utilisant un projet de base de données (.dbproj), vous n'avez pas besoin de spécifier de connexion de base de données et vous pouvez cliquer sur Annuler dans la boîte de dialogue de connexion. Pour plus d'informations, consultez Démarrage du développement en équipe de bases de données faisant référence à des objets SQLCLR.
Pour vous connecter à une base de données SQL Server
Connectez-vous à une base de données SQL Server 2005 ou SQL Server 2008 en renseignant la boîte de dialogue Ajouter/Modifier la connexion. Pour plus d'informations, consultez Ajouter une/Modifier la connexion (Microsoft SQL Server).
ou
Sélectionnez une connexion de base de données existante dans la boîte de dialogue Ajouter une référence de base de données à utiliser pour le projet SQL Server. Pour plus d'informations, consultez Ajouter une référence de base de données, boîte de dialogue.
Voir aussi
Tâches
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