Procédure pas à pas : déploiement des modifications de refactorisation d'une base de données
Mise à jour : novembre 2007
Lorsque vous travaillez dans Visual Studio Team System Database Edition, vous modifiez une représentation hors connexion de la base de données. Pour valider ces modifications dans une base de données active, vous devez générer et déployer le projet de base de données. Ce processus est le même, que vous déployiez vos modifications dans une base de données de développement, une base de données de test ou une base de données de production.
Remarque : |
---|
Le processus de déploiement est identique pour tous les types de bases de données. Toutefois, la personne qui effectue le déploiement peut être différente. Par exemple, dans certains environnements, seuls les administrateurs de base de données disposent d'autorisations pour déployer la base de données de production. |
Dans une procédure pas à pas précédente, Procédure pas à pas : changement du nom d'une colonne de base de données, vous avez créé un projet de base de données, importé le schéma de base de données Northwind et renommé une colonne. Dans cette procédure pas à pas, vous allez générer et déployer cette modification.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer de la configuration suivante :
Database Edition.
Microsoft SQL Server 2000 ou SQL Server 2005
Le projet de base de données que vous avez créé dans Procédure pas à pas : changement du nom d'une colonne de base de données
Pour générer le projet de base de données
Ouvrez le projet de base de données, nommé RefactorNorthwind, que vous avez créé dans Procédure pas à pas : changement du nom d'une colonne de base de données.
Dans le menu Générer, cliquez sur Générer la solution.
Des erreurs de génération peuvent apparaître dans la fenêtre Liste d'erreurs. Par exemple, si une procédure stockée sélectionne une colonne sans la qualifier et que vous renommez cette colonne, le nom n'est pas mis à jour dans la procédure stockée. Cette situation provoque une erreur de génération parce que la procédure stockée sélectionne à présent un nom de colonne qui n'existe pas. Pour éviter ces types d'erreurs, assurez-vous que les noms de colonnes sont qualifiés complets dans le code Transact-SQL (T-SQL). Pour corriger ces types d'erreurs, vous devez mettre à jour le nom de colonne manuellement. Par exemple, si vous renommez la colonne Orders.ShippedDate en Orders.ShippedDateAndTime, vous devez mettre à jour manuellement la procédure stockée Sales by Year. Remplacez la procédure stockée suivante :
create procedure "Sales by Year" @Beginning_Date DateTime, @Ending_Date DateTime AS SELECT Orders.ShippedDateAndTime, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy, ShippedDate) AS Year FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID WHERE Orders.ShippedDateAndTime Between @Beginning_Date And @Ending_Date
par :
create procedure "Sales by Year" @Beginning_Date DateTime, @Ending_Date DateTime AS SELECT Orders.ShippedDateAndTime, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy, Orders.ShippedDateAndTime) AS Year FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID WHERE Orders.ShippedDateAndTime Between @Beginning_Date And @Ending_Date
Pour définir les propriétés de déploiement pour le projet
Dans l'Explorateur de solutions, cliquez sur le projet de base de données RefactorNorthwind.
Dans le menu Projet, cliquez sur Propriétés RefactorNorthwind.
Les propriétés du projet s'affichent.
Cliquez sur l'onglet Générer.
Cliquez sur le bouton ... pour afficher la boîte de dialogue Propriétés de connexion.
Définissez les propriétés de connexion pour la base de données dans laquelle vous voulez travailler, puis cliquez sur OK.
La zone Connexion cible contient la chaîne de connexion correcte.
Attention : Vous devez tester ce déploiement sur une base de données de test ou une base de données de développement. Vous ne devez pas le tester sur votre base de données de production.
Tapez le nom de la base de données cible dans la zone Nom de la base de données cible.
Attention : Par défaut, la zone Nom de la base de données cible contient le nom du projet de base de données. Vous devez modifier ce champ si le nom du projet de base de données n'est pas le nom de la base de données cible.
Activez la case à cocher Générer des instructions DROP pour les objets qui se trouvent dans la base de données cible mais pas dans le projet de base de données. Cette case à cocher est importante lorsque, par exemple, vous renommez une table. Le script de déploiement qui est généré contiendra une instruction DROP pour la table portant l'ancien nom et une instruction CREATE TABLE pour la table portant le nouveau nom. Vous pouvez désactiver la case à cocher Générer des instructions DROP pour les objets qui se trouvent dans la base de données cible mais pas dans le projet de base de données pour éviter la suppression de la table portant l'ancien nom. Il s'agit là de l'une des nombreuses approches permettant d'éviter toute perte de données éventuelle dans cette situation. Pour plus d'informations, consultez Protection des données pendant une opération de changement de nom.
Dans le menu Fichier, cliquez sur Enregistrer tout.
Dans le menu Générer, cliquez sur Générer la solution.
Le script de déploiement est généré en fonction des propriétés de projet que vous venez de définir. L'état de la génération apparaît dans la fenêtre Sortie, et Génération : 1 a réussi ou est à jour doit apparaître sur la dernière ligne.
Pour déployer le projet de base de données
Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Fichier.
La boîte de dialogue Ouvrir un fichier s'affiche.
Dans la zone Nom de fichier, tapez l'adresse suivante, puis cliquez sur Ouvrir.
VotreChemin\RefactorNorthwind\Sql\RefactoringDeploy.VotreServeur.Northwind.sql
Dans le script de déploiement, recherchez les lignes suivantes :
DROP TABLE [dbo].[Orders]
et
CREATE TABLE [dbo].[Orders]
Ces lignes correspondent à la modification de refactorisation que vous avez apportée dans la procédure pas à pas précédente. À ce stade, vous pouvez modifier le script de déploiement. Par exemple, vous pouvez supprimer les instructions DROP que vous ne voulez pas déployer. Pour plus d'informations, consultez Protection des données pendant une opération de changement de nom. Pour les besoins de cette procédure pas à pas, vous pouvez laisser le script de déploiement tel qu'il est.
Attention : Si vous modifiez le script de déploiement, vous devez le déployer manuellement, en l'exécutant à partir de l'éditeur T-SQL. Vous ne pouvez pas le déployer en utilisant la commande Deploy.
Fermez le script de déploiement.
Dans le menu Affichage, cliquez sur Explorateur de serveurs.
La fenêtre Explorateur de serveurs s'affiche, et la base de données cible apparaît sous Connexions de données. Si la base de données cible n'apparaît pas, ouvrez le menu Outils, puis cliquez sur Connexion à une base de données pour ajouter une connexion à la base de données cible.
Dans l'Explorateur de serveurs, développez la base de données cible, développez le nœud Tables, puis développez la table Orders.
La colonne ShippedDate apparaît avec le nom d'origine.
Dans l'Explorateur de solutions, cliquez sur le projet de base de données RefactorNorthwind.
Dans le menu Générer, cliquez sur Déployer. Vous pouvez également cliquer avec le bouton droit sur le projet dans l'Explorateur de solutions, puis cliquer sur Déployer.
Attention : Vous devez exécuter ce déploiement sur une base de données de test ou une base de données de développement. Vous ne devez pas l'exécuter sur votre base de données de production.
Le projet de base de données est déployé sur la base de données cible à l'aide du script de déploiement. L'état du déploiement s'affiche dans la fenêtre Sortie, et Le déploiement a réussi doit apparaître sur la dernière ligne.
Dans l'Explorateur de serveurs, cliquez avec le bouton droit sur le nœud Tables, puis cliquez sur Actualiser.
La colonne ShippedDate apparaît avec le nouveau nom ShippedDateAndTime.
Voir aussi
Concepts
Vue d'ensemble des paramètres de projet de base de données