Comment changer une colonne calculée en colonne régulière dans SQL Server

Si vous travaillez avec SQL Server, vous pouvez rencontrer une situation où vous devez changer une colonne calculée en une colonne régulière. Cela peut être nécessaire si vous souhaitez commencer à stocker des données directement dans la colonne au lieu de les faire calculer automatiquement en fonction d’une expression. Malheureusement, SQL Server ne permet pas de modifier simplement une colonne calculée existante pour en faire une colonne non calculée tout en préservant ses données. Cependant, il existe une solution de contournement qui peut atteindre le résultat souhaité. Dans cet article de blog, nous allons parcourir le processus étape par étape.

Comprendre les colonnes calculées

Avant de plonger dans la solution, il est essentiel de comprendre ce qu’est une colonne calculée.

  • Colonne calculée : Une colonne calculée dans SQL Server est une colonne virtuelle dérivée d’une expression impliquant d’autres colonnes de la même table. Ses valeurs sont calculées automatiquement à chaque fois qu’une ligne est récupérée ou modifiée.
  • Exemple : Par exemple, si vous avez une colonne full_name dérivée des colonnes first_name et last_name, SQL Server calcule full_name chaque fois que vous interrogez la table.

Maintenant, examinons les étapes nécessaires pour changer une colonne calculée en une colonne régulière tout en préservant ses valeurs actuelles.

Solution étape par étape

Étape 1 : Ajouter une nouvelle colonne à la table

La première étape consiste à créer une nouvelle colonne dans votre table existante qui contiendra finalement les valeurs qui étaient dans la colonne calculée. Voici comment procéder :

ALTER TABLE VotreNomDeTable ADD NomNouvelleColonne TypeDeDonnées;

Remplacez VotreNomDeTable par le nom de votre table, NomNouvelleColonne par le nom de la nouvelle colonne, et TypeDeDonnées par le type de données souhaité (par exemple, VARCHAR, INT, etc.) en fonction des valeurs attendues.

Étape 2 : Copier les données de la colonne calculée

Ensuite, vous voudrez transférer les données de la colonne calculée vers la nouvelle colonne que vous venez de créer. Vous pouvez le faire en utilisant l’instruction UPDATE :

UPDATE VotreNomDeTable SET NomNouvelleColonne = NomColonneCalculée;

Assurez-vous de remplacer NomColonneCalculée par le nom réel de la colonne calculée dont vous copiez les données.

Étape 3 : Supprimer la colonne calculée

Maintenant que vous avez les valeurs stockées dans la nouvelle colonne, vous pouvez supprimer l’ancienne colonne calculée. Cela libérera de l’espace dans votre table et complétera la conversion :

ALTER TABLE VotreNomDeTable DROP COLUMN NomColonneCalculée;

Étape 4 : Renommer la nouvelle colonne (facultatif)

Si vous souhaitez que la nouvelle colonne ait le même nom que l’ancienne colonne calculée pour plus de cohérence, vous pouvez utiliser :

EXEC sp_rename 'VotreNomDeTable.NomNouvelleColonne', 'NomColonneCalculée', 'COLUMN';

Résumé du processus

Pour changer une colonne calculée en une colonne non calculée, suivez ces étapes simples :

  1. Ajoutez une nouvelle colonne à la table.
  2. Copiez les données de la colonne calculée vers la nouvelle colonne.
  3. Supprimez la colonne calculée.
  4. (Facultatif) Renommez la nouvelle colonne pour conserver le nom d’origine.

Conclusion

Bien que SQL Server ne permette pas directement de modifier une colonne calculée pour en faire une colonne régulière, les étapes décrites ci-dessus offrent une solution pratique sans perdre vos données existantes. En ajoutant une nouvelle colonne, en copiant les données, puis en supprimant la colonne calculée, vous pouvez atteindre efficacement le résultat souhaité.

Si vous avez trouvé cet article de blog utile ou si vous connaissez quelqu’un qui pourrait bénéficier de ces informations, n’hésitez pas à le partager ! Pour d’autres conseils et astuces SQL Server, restez connecté à notre blog.