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?

È stato utile?

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.

  1. Crea una nuova tabella con le colonne della chiave primaria dalla tabella di origine e la colonna generata.
  2. Copia i dati dalla tabella di origine nella nuova tabella.
  3. Modifica la colonna nella tabella di origine.
  4. 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top