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?

Était-ce utile?

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.

  1. Créez une nouvelle table avec les colonnes de clé primaire de votre table source et la colonne générée.
  2. Copiez les données de votre table source dans la nouvelle table.
  3. Modifiez la colonne de votre table source.
  4. 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top