Procédure pas à pas : création et déploiement d'une base de données faisant référence à une autre base de données
Dans cette procédure pas à pas, vous allez créer un projet de base de données pour une base de données qui fait référence à une autre base de données. La base de données à laquelle le projet fait référence est également gérée à l'aide de Visual Studio Premium, mais elle fait partie d'une autre solution. Cette approche reproduit un scénario courant dans lequel différents développeurs gèrent des bases de données différentes ou dans lequel un développeur ne peut pas déployer la base de données qui est la cible d'une référence.
Cette procédure pas à pas décrit les tâches suivantes :
Comment créer un projet de base de données.
Comment faire référence à un fichier .dbschema qui été produit par un autre projet de base de données.
Comment définir des variables et leurs valeurs pour le projet de base de données auquel vous faites référence.
Comment déployer votre projet de base de données dans votre environnement de développement isolé.
Composants requis
Vous devez avoir installé Visual Studio. De plus, vous devez avoir terminé la Procédure pas à pas : création et déploiement d'une nouvelle base de données sous contrôle de version et déployé la base de données créée dans votre environnement de développement isolé. Pour ajouter votre projet au contrôle de version, un logiciel de contrôle de version, tel que Visual Studio Team Foundation Server, doit être installé.
Pour créer le projet de base de données
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
La boîte de dialogue Nouveau projet s'affiche.
Sous Modèles installés, développez le nœud Base de données, puis cliquez sur SQL Server.
Notes
Si vous utilisez Visual Studio Professional, regardez plutôt sous Modèles installés, développez le nœud Base de données , développez le nœud SQL Server et cliquez sur Avancé.
Dans la liste des modèles, cliquez sur Projet de base de données SQL Server 2008.
Dans Nom, tapez OrdersDB.
Activez la case à cocher Créer le répertoire pour la solution.
Acceptez les valeurs par défaut pour Emplacement, Nom de solution et Ajouter au contrôle de code source, puis cliquez sur OK.
Notes
Vous pouvez, à ce stade, ajouter votre solution au contrôle de version. Dans cette procédure pas à pas, vous ajoutez la solution au contrôle de version dans la dernière procédure.
Le nouveau projet de base de données, ProductsDB, s'affiche dans l'Explorateur de solutions.
Dans le menu Affichage, cliquez sur Vue Schéma de base de données.
La vue Schéma s'affiche si elle n'était pas déjà visible.
Ensuite, ajoutez les tables au projet de base de données.
Pour ajouter la table OrderItems à votre projet de base de données
Dans la vue Schéma, cliquez avec le bouton droit sur le projet OrdersDB, pointez sur Ajouter et cliquez sur Table.
La boîte de dialogue Ajouter un nouvel élément s'affiche.
Dans Modèles, cliquez sur Table.
Notes
Dans la liste Catégories, vous pouvez cliquer sur Tables et vues pour rechercher plus facilement un modèle de table.
Dans la zone Nom, tapez OrderItems en tant que nom à attribuer à la nouvelle table.
Cliquez sur Ajouter pour ajouter la table au projet de base de données.
L'Explorateur de solutions affiche le nouveau fichier pour la table dans votre projet de base de données. La vue Schéma affiche le nouvel objet table. L'éditeur Transact-SQL apparaît et affiche la définition de votre nouvelle table.
Dans l'éditeur Transact-SQL, modifiez la définition de la table afin qu'elle corresponde à l'exemple suivant :
-- ============================================= -- Create OrderItems table -- ============================================= CREATE TABLE [dbo].[OrderItems] ( [POID] INT NOT NULL, [ItemID] INT NOT NULL, [ProductID] INT NOT NULL, [Quantity] INT NOT NULL, [Price] FLOAT NOT NULL, [Notes] NVARCHAR(75) NULL ) ON [PRIMARY]
Dans le menu Fichier, cliquez sur Enregistrer dbo.OrderItems.table.sql.
Dans Vue Schéma, développez le nœud dbo.OrderItems.
Développez le nœud Colonnes dans la table dbo.OrderItems.
Les colonnes que vous avez définies dans Transact-SQL apparaissent.
Ensuite, ajoutez une clé primaire à la table OrderItems.
Pour ajouter une clé primaire à la table OrderItems
Dans la vue Schéma, cliquez avec le bouton droit sur dbo.OrderItems, pointez sur Ajouter et cliquez sur Clé primaire.
La boîte de dialogue Ajouter un nouvel élément s'affiche.
Dans la zone Nom, tapez PK_OrderItems en tant que nom à attribuer à la nouvelle clé primaire.
Cliquez sur Ajouter pour ajouter la clé primaire.
L'Explorateur de solutions affiche le nouveau fichier pour la clé primaire dans votre projet de base de données. La vue Schéma affiche le nouvel objet clé primaire. L'éditeur Transact-SQL apparaît et affiche la définition de votre nouvelle clé.
Notes
L'icône associée à la clé primaire apparaît avec un cercle rouge qui contient un « x » blanc, ce qui indique que la définition par défaut contient une erreur. Ce comportement est prévisible, étant donné que la définition par défaut fait référence à la colonne « column_1 » qui n'existe pas.
Dans l'éditeur Transact-SQL, modifiez la définition de la clé primaire afin qu'elle corresponde à l'exemple suivant :
-- ============================================= -- Create PK_OrderItems primary key -- ============================================= ALTER TABLE [dbo].[OrderItems] ADD CONSTRAINT [PK_OrderItems] PRIMARY KEY CLUSTERED ([POID], [ItemID]) ON [PRIMARY]
Dans le menu Fichier, cliquez sur Enregistrer dbo.OrderItems.PK_OrderItems.pkey.sql.
L'indicateur d'erreur disparaît de l'icône qui indique que la définition de clé primaire est maintenant valide.
Ensuite, ajoutez la référence entre bases de données .
Pour ajouter une vue qui référence une table dans une autre base de données
Dans la vue Schéma, cliquez avec le bouton droit sur le nœud Vues, pointez sur Ajouter, puis cliquez sur Vue.
Dans la zone Nom, tapez ItemDetailsView en tant que nom à attribuer à la nouvelle vue, puis cliquez sur Ajouter.
L'Explorateur de solutions affiche le nouveau fichier pour la vue dans votre projet de base de données. La Vue Schéma affiche le nouvel objet de vue. L'éditeur Transact-SQL apparaît et affiche la définition de votre nouvelle vue.
Notes
Dans la Vue Schéma, l'icône associée à la vue apparaît avec un cercle rouge qui contient un « x » blanc, ce qui indique que la définition par défaut contient une erreur. Ce comportement est prévisible, étant donné que la définition par défaut fait référence à la table « [sometableorview] » qui n'existe pas.
Dans l'éditeur Transact-SQL, modifiez la définition de la table afin qu'elle corresponde à l'exemple suivant :
-- ============================================= -- Create ItemDetailsView view -- ============================================= CREATE VIEW [dbo].[ItemDetailsView] AS SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O INNER JOIN [ProductsDB].[dbo].[Products] AS P ON P.[ProductID] = O.[ProductID]
Dans le menu Fichier, cliquez sur Enregistrer dbo.ItemDetailsView.view.sql.
Dans le menu Affichage, cliquez sur Liste d'erreurs.
La Liste d'erreurs qui s'affiche contient six erreurs. Les erreurs se produisent parce que Visual Studio Premium ne peut pas valider si la base de données à laquelle vous faites référence existera sur le serveur cible lorsque vous déploierez le projet de base de données. Il convient de tenir compte de cette condition car vous pouvez déployer dans différents emplacements cibles. Pour résoudre les erreurs, définissez ensuite une référence entre bases de données.
Pour définir une référence entre bases de données
Dans l'Explorateur de solutions, développez le projet OrderItems, puis cliquez sur le nœud Références.
Dans le menu Projet, cliquez sur Ajouter une référence de base de données.
Notes
Vous pouvez également cliquer avec le bouton droit sur le nœud Références et choisir Ajouter une référence de base de données.
La boîte de dialogue Ajouter une référence de base de données s'affiche. Étant donné que la solution contient un seul projet de base de données, Schéma de projet de base de données (.dbschema) est spécifié par défaut.
Cliquez sur Parcourir.
La boîte de dialogue Sélectionner un fichier de base de données s'affiche.
Spécifiez le fichier ProductsDB.dbschema créé lorsque vous avez généré le projet dans la procédure pas à pas préalable (par exemple, Mes documents\Visual Studio 2008\Projects\ProductsDB\ProductsDB\sql\ProductsDB.dbschema), puis cliquez sur Ouvrir.
Dans Variables de référence de base de données, activez la case à cocher Définir la variable de base de données. Dans la zone Nom, tapez ReferencedDBVar. Dans la zone Valeur, tapez ProductsDB.
Notes
Dans cette procédure pas à pas, vous pouvez supposer que la base de données à laquelle vous faites référence figure toujours sur le même serveur que la base de données à laquelle vous ajoutez la référence. Par conséquent, vous n'avez pas à définir de variables pour le nom du serveur.
Dans Mise à jour des scripts et objets de schéma, activez la case à cocher Mettre à jour les scripts et définitions d'objets de schéma existants pour utiliser les variables de référence de la base de données et cliquez sur OK.
Dans la boîte de dialogue Aperçu des modifications, cliquez sur JOINTURE INTERNE pour afficher les détails de la modification, puis cliquez sur Appliquer.
La définition de la vue est mise à jour pour correspondre à ce qui suit :
-- ============================================= -- Create ItemDetailsView view -- ============================================= CREATE VIEW [dbo].[ItemDetailsView] AS SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O INNER JOIN [$(ReferencedDBVar)].[dbo].[Products] AS P ON P.[ProductID] = O.[ProductID]
Le nom de variable que vous avez spécifié identifie la table à laquelle vous faites référence et les six erreurs ont été résolues. Ensuite, générez et déployez le projet de base de données.
Pour configurer, générer et déployer le projet
Dans l'Explorateur de solutions, cliquez sur OrdersDB (le projet, pas la solution).
Dans le menu Projet, cliquez sur Propriétés de OrdersDB.
La fenêtre des propriétés du projet s'affiche.
Notes
Vous pouvez également cliquer avec le bouton droit sur OrdersDB dans l'Explorateur de solutions, puis cliquer sur Propriétés.
Cliquez sur l'onglet Déployer.
Dans la liste Déployer une action, cliquez sur Créer un script de déploiement (.sql) et le déployer vers la base de données.
Cliquez sur le bouton Modifier pour spécifier la connexion cible.
Spécifiez les informations de connexion au serveur de base de données vers lequel vous souhaitez déployer la base de données OrdersDB.
Important
Pour terminer cette procédure pas à pas, vous devez déployer la base de données sur le même serveur que celui sur lequel vous avez déployé ProductsDB lors de la procédure pas à pas préalable. Si vous souhaitez déployer sur un autre serveur, vous devez définir une variable pour celui-ci.
Dans Sélectionner ou entrer un nom de base de données, tapez OrdersDB et cliquez sur OK.
La zone Connexion cible contient la chaîne de connexion et la zone Nom de la base de données cible contient OrdersDB.
Acceptez les valeurs par défaut pour les autres options, ouvrez le menu Fichier, puis cliquez sur Enregistrer les éléments sélectionnés.
Les paramètres de déploiement du projet sont enregistrés.
Dans le menu Générer, cliquez sur Générer la solution.
Votre projet de base de données est généré. En cas de réussite, le message La génération a réussi apparaît dans la barre d'état et les résultats de génération s'affichent dans la fenêtre Sortie.
Dans l'Explorateur de solutions, cliquez sur OrdersDB (le projet, pas la solution).
Dans le menu Générer, pointez sur Déployer OrdersDB.
Votre projet de base de données est déployé en utilisant la connexion que vous avez spécifiée dans la configuration de build. Le message « Le déploiement a réussi » s'affiche dans la fenêtre Sortie et dans la barre d'état.
Étapes suivantes
En général, c'est à ce moment que vous placez votre projet de base de données sous contrôle de version pour le partager avec l'équipe.
Voir aussi
Concepts
Configuration de projets de base de données et réalisation d'un déploiement de tests
Écriture et modification du code d'une base de données
Générer et déployer des bases de données dans un environnement de pré-production ou de production