Frage

Kennt jemand eine Möglichkeit, eine berechnete Spalte zu ändern, ohne die Spalte in SQL Server zu löschen?Ich möchte die Spalte nicht mehr als berechnete Spalte verwenden und Daten direkt in der Spalte speichern, möchte aber die aktuellen Werte beibehalten.

Ist das überhaupt möglich?

War es hilfreich?

Lösung

Nicht, dass ich es wüsste, aber hier ist etwas, was Sie tun können

Fügen Sie der Tabellen -Update diese Spalte mit den Werten der Computerspalte hinzu und lassen Sie die Computerspalte ab

Andere Tipps

Okay, mal sehen, ob ich das richtig verstanden habe.Sie möchten eine aktuell berechnete Spalte in eine Plain-Jane-Datenspalte umwandeln.Normalerweise würde dies die Spalte löschen, aber Sie möchten die Daten in der Spalte behalten.

  1. Erstellen Sie eine neue Tabelle mit den Primärschlüsselspalten aus Ihrer Quelltabelle und der generierten Spalte.
  2. Kopieren Sie die Daten aus Ihrer Quelltabelle in die neue Tabelle.
  3. Ändern Sie die Spalte in Ihrer Quelltabelle.
  4. Kopieren Sie die Daten zurück.

Egal, was Sie tun, ich bin mir ziemlich sicher, dass eine Änderung der Spalte sie löschen wird.Dieser Weg ist etwas komplexer, aber nicht so schlimm und schont Ihre Daten.

[Bearbeiten:Die Antwort von @SqlMenace ist viel einfacher.:) Verflucht sei die Bedrohung!!:)]

Wenn Sie den Namen der Spalte beibehalten müssen (um den Clientcode nicht zu beschädigen), müssen Sie die Spalte löschen und eine gespeicherte Spalte mit demselben Namen wieder hinzufügen.Sie können dies ohne Ausfallzeiten tun, indem Sie die Änderungen (nach dem Vorbild der SQLMenace-Lösung) in einer einzigen Transaktion vornehmen.Hier ist ein Pseudocode:

begin transaction
   drop computed colum X
   add stored column X
   populate column using the old formula
commit transaction
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top