SQL Server altera la colonna calcolata
-
09-06-2019 - |
Domanda
Qualcuno conosce un modo per modificare una colonna calcolata senza eliminare la colonna in SQL Server.Voglio smettere di utilizzare la colonna come colonna calcolata e iniziare a memorizzare i dati direttamente nella colonna, ma vorrei mantenere i valori correnti.
È possibile?
Soluzione
Non che io sappia, ma ecco qualcosa che puoi fare
Aggiungi un'altra colonna alla tabella Aggiorna quella colonna con i valori della colonna calcolata, quindi lascia cadere la colonna calcolata
Altri suggerimenti
Ok, allora vediamo se ho capito bene.Vuoi prendere una colonna attualmente calcolata e renderla una colonna di dati semplice.Normalmente questo eliminerebbe la colonna ma vuoi mantenere i dati nella colonna.
- Crea una nuova tabella con le colonne della chiave primaria dalla tabella di origine e la colonna generata.
- Copia i dati dalla tabella di origine nella nuova tabella.
- Modifica la colonna nella tabella di origine.
- Copia nuovamente i dati.
Qualunque cosa tu faccia, sono abbastanza sicuro che cambiare la colonna la farà cadere.In questo modo è un po' più complesso ma non così male e salva i tuoi dati.
[Modificare:La risposta di @SqlMenace è molto più semplice.:) Maledetta minaccia!!:)]
Se è necessario mantenere il nome della colonna (in modo da non interrompere il codice client), sarà necessario eliminare la colonna e aggiungere nuovamente una colonna memorizzata con lo stesso nome.Puoi farlo senza tempi di inattività apportando le modifiche (sulla falsariga della soluzione SQLMenace) in un'unica transazione.Ecco uno pseudo-codice:
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction