SQL Server modifier la colonne calculée
-
09-06-2019 - |
Question
Quelqu'un connaît-il un moyen de modifier une colonne calculée sans supprimer la colonne dans SQL Server.Je souhaite arrêter d'utiliser la colonne comme colonne calculée et commencer à stocker les données directement dans la colonne, mais j'aimerais conserver les valeurs actuelles.
Est-ce seulement possible?
La solution
Pas à ma connaissance, mais voici quelque chose que vous pouvez faire
Ajoutez une autre colonne à la mise à jour de la table cette colonne avec les valeurs de la colonne calculée, puis supprimez la colonne calculée
Autres conseils
Ok, alors laissez-moi voir si j'ai bien compris.Vous souhaitez prendre une colonne actuellement calculée et en faire une colonne de données simple.Normalement, cela supprimerait la colonne, mais vous souhaitez conserver les données dans la colonne.
- Créez une nouvelle table avec les colonnes de clé primaire de votre table source et la colonne générée.
- Copiez les données de votre table source dans la nouvelle table.
- Modifiez la colonne de votre table source.
- Copiez les données.
Peu importe ce que vous faites, je suis presque sûr que changer la colonne la supprimera.Cette méthode est un peu plus complexe mais pas si mauvaise et sauvegarde vos données.
[Modifier:La réponse de @SqlMenace est beaucoup plus simple.:) Je te maudis Menace !!:)]
Si vous devez conserver le nom de la colonne (afin de ne pas casser le code client), vous devrez supprimer la colonne et rajouter une colonne stockée portant le même nom.Vous pouvez le faire sans temps d'arrêt en effectuant les modifications (à l'instar de la solution SQLMenace) en une seule transaction.Voici un pseudo-code :
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction