Partager via


Considérations à prendre en compte avant de renommer des objets de base de données

Avant de renommer un objet de base de données dans Visual Studio Premium, vous devez prendre en considération les problèmes suivants :

Changement du nom de colonnes dans des vues

Effets des erreurs de build

Effets sur les plans de génération de données

Effets sur les tests unitaires

Effets sur les scripts Transact-SQL

Changement du nom de colonnes dans des vues

Une vue se compose d'une instruction qui sélectionne des colonnes dans des tables ou dans d'autres vues. Les tables qui sont utilisées dans la vue sont appelées « tables de base » ou « tables sous-jacentes ». Par exemple, le code suivant crée une vue qui est basée sur la table HumanResources.Employee :

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

Lorsque vous renommez une colonne dans une vue, la colonne n'est pas renommée dans la table sous-jacente. Au lieu de cela, le nom dans la vue est un alias, comme dans les exemples suivants :

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title AS JobTitle
       FROM HumanResources.Employee

CREATE VIEW dbo.vEmployeeTest (EmployeeID, JobTitle)
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

Notes

Si une vue utilise SELECT * pour obtenir les données de la table sous-jacente, le * est développé pour répertorier les colonnes individuelles. La colonne renommée est un alias, comme dans les exemples précédents.

Si vous voulez renommer la colonne à la fois dans la vue et dans la table sous-jacente, renommez plutôt la colonne dans la table, ce qui met automatiquement à jour la colonne dans la vue.

Effets des erreurs de build

Lorsque vous renommez un objet de base de données dans Visual Studio Premium, une tentative de mise à jour des autres objets de base de données, des plans de génération de données, des tests unitaires et des scripts qui font référencent à cet objet est effectuée. Pendant que vous travaillez dans un projet de base de données, vous pouvez exécuter une action qui introduit une erreur de build, puis exécuter une autre action qui corrige cette erreur de build. Par exemple, vous pouvez supprimer une table, puis mettre à jour une vue qui dépend de cette table pour supprimer la référence à la table supprimée. Entre la suppression de la table et la mise à jour de la vue, votre projet aura des erreurs de build.

Si vous renommez un objet de base de données lorsque vous avez des erreurs de build dans votre projet, cet objet peut néanmoins être renommé correctement. Toutefois, il peut s'avérer impossible de mettre à jour correctement toutes les références à l'objet que vous renommez. S'il y a des erreurs de build dans votre projet, vous en êtes averti dans la boîte de dialogue Aperçu des modifications. Si vous continuez, l'objet est renommé et les références sont mises à jour dans la mesure du possible. Si vous annulez l'opération, vous pouvez commencer par corriger les erreurs de build, puis recommencer l'opération de changement du nom.

Effets sur les plans de génération de données

Lorsque vous renommez un objet de base de données dans Visual Studio Premium ou Visual Studio Ultimate, une tentative de mise à jour des plans de génération de données qui référencent cet objet est effectuée. Toutefois, vous devez prendre en considération les points suivants :

  • Avant de pouvoir renommer un objet, vous devez enregistrer tous les plans de génération de données qui sont ouverts dans l'éditeur. Si des plans de génération de données sont ouverts lorsque vous essayez de renommer un objet, tous les plans de génération de données ouverts sont enregistrés et fermés automatiquement, puis l'opération de changement de nom se poursuit.

  • Vous devez mettre à jour manuellement les plans de génération de données qui utilisent des générateurs de données liés aux données.

Pour plus d'informations, consultez Génération de données de test pour des bases de données à l'aide de générateurs de données.

Effets sur les tests unitaires

Les instructions Transact-SQL d'un test unitaire référencent généralement les objets de la base de données spécifiée dans la chaîne ValidationConnectionString et la chaîne ExecutionConnectionString du test unitaire. Voici deux cas où cette règle n'est pas respectée :

  • Les instructions Transact-SQL d'un test unitaire peuvent référencer des objets contenus dans d'autres bases de données.

  • Les instructions Transact-SQL d'un test unitaire peuvent faire référence à des objets contenus dans la même base de données, mais dans des schémas différents.

Lorsque vous renommez un objet de base de données dans Visual Studio Premium, une tentative de mise à jour des tests unitaires de la solution qui référencent cet objet est effectuée. Dans les cas mentionnés précédemment, il peut s'avérer impossible de mettre à jour les tests unitaires. Pour mettre à jour des tests unitaires lorsque vous renommez un objet de base de données, vous devez vous assurer que vous utilisez le nom qualifié complet des objets dans vos tests unitaires. Si tel est le cas, le moteur de refactorisation peut les mettre à jour chaque fois que vous renommez un objet de schéma.

Pour plus d'informations sur les tests unitaires, consultez Vérification du code de base de données à l'aide de tests unitaires.

Effets sur les scripts Transact-SQL

Les scripts Transact-SQL d'un projet de base de données référencent généralement les objets de schéma contenus dans la base de données du projet de base de données. Voici deux cas où cette règle n'est pas respectée :

  • Les instructions Transact-SQL d'un script peuvent référencer des objets contenus dans d'autres bases de données.

  • Les instructions Transact-SQL d'un script peuvent faire référence à des objets contenus dans la même base de données, mais dans des schémas différents.

Lorsque vous renommez un objet de base de données dans Visual Studio Premium, une tentative de mise à jour des scripts de la solution qui référencent cet objet est effectuée. Dans les cas mentionnés précédemment, il peut s'avérer impossible de mettre à jour les scripts. Pour mettre à jour des scripts lorsque vous renommez un objet de base de données, vous devez vous assurer que vous utilisez le nom qualifié complet des objets dans vos scripts. Si tel est le cas, le moteur de refactorisation peut les mettre à jour chaque fois que vous renommez un objet de schéma.

Pour plus d'informations sur les scripts, consultez Création et modification de scripts de base de données.

Sécurité

Si une erreur empêche l'exécution d'une opération de refactorisation, les informations sur l'erreur sont écrites dans le journal des événements de l'application, où tout utilisateur qui a des autorisations d'utilisateur normal peut les consulter. Si vos informations de schéma sont considérées comme sensibles et peuvent apparaître dans le journal, vous pouvez effacer le journal ou restreindre l'accès à l'ordinateur client.

Voir aussi

Concepts

Renommer toutes les références à un objet de base de données