Wie man eine Berechnete Spalte in eine Reguläre Spalte in SQL Server ändert

Wenn Sie mit SQL Server arbeiten, kann es vorkommen, dass Sie eine berechnete Spalte in eine reguläre Spalte ändern müssen. Dies kann notwendig sein, wenn Sie beginnen möchten, Daten direkt in der Spalte zu speichern, anstatt sie automatisch basierend auf einem Ausdruck berechnen zu lassen. Leider erlaubt SQL Server nicht einfach die Änderung einer bestehenden berechneten Spalte in eine nicht berechnete Spalte, während die Daten erhalten bleiben. Es gibt jedoch einen Workaround, der das gewünschte Ergebnis erzielen kann. In diesem Blogbeitrag werden wir den Prozess Schritt für Schritt durchgehen.

Verständnis von Berechneten Spalten

Bevor wir in die Lösung eintauchen, ist es wichtig zu verstehen, was eine berechnete Spalte ist.

  • Berechnete Spalte: Eine berechnete Spalte in SQL Server ist eine virtuelle Spalte, die aus einem Ausdruck abgeleitet wird, der andere Spalten in derselben Tabelle umfasst. Ihre Werte werden automatisch berechnet, wann immer eine Zeile abgerufen oder geändert wird.
  • Beispiel: Wenn Sie beispielsweise eine full_name-Spalte haben, die aus den Spalten first_name und last_name abgeleitet ist, berechnet SQL Server full_name, wann immer Sie die Tabelle abfragen.

Nun wollen wir die erforderlichen Schritte untersuchen, um eine berechnete Spalte in eine reguläre Spalte zu ändern und ihre aktuellen Werte zu erhalten.

Schritt-für-Schritt Lösung

Schritt 1: Fügen Sie eine Neue Spalte zur Tabelle Hinzu

Der erste Schritt besteht darin, eine neue Spalte in Ihrer bestehenden Tabelle zu erstellen, die letztendlich die Werte enthalten wird, die sich in der berechneten Spalte befinden. So können Sie das tun:

ALTER TABLE YourTableName ADD NewColumnName DataType;

Ersetzen Sie YourTableName durch den Namen Ihrer Tabelle, NewColumnName durch den Namen der neuen Spalte und DataType durch den gewünschten Datentyp (z. B. VARCHAR, INT usw.) basierend auf den erwarteten Werten.

Schritt 2: Kopieren Sie Daten von der Berechneten Spalte

Als Nächstes möchten Sie die Daten von der berechneten Spalte in die neu erstellte Spalte übertragen. Sie können dies mit der UPDATE-Anweisung tun:

UPDATE YourTableName SET NewColumnName = ComputedColumnName;

Stellen Sie sicher, dass Sie ComputedColumnName durch den tatsächlichen Namen der berechneten Spalte ersetzen, von der Sie die Daten kopieren.

Schritt 3: Löschen Sie die Berechnete Spalte

Jetzt, da Sie die Werte in der neuen Spalte gespeichert haben, können Sie die alte berechnete Spalte löschen. Dies schafft Platz in Ihrer Tabelle und vervollständigt die Konvertierung:

ALTER TABLE YourTableName DROP COLUMN ComputedColumnName;

Schritt 4: Benennen Sie die Neue Spalte Um (Optional)

Wenn Sie möchten, dass die neue Spalte denselben Namen wie die alte berechnete Spalte trägt, um Konsistenz zu wahren, können Sie Folgendes verwenden:

EXEC sp_rename 'YourTableName.NewColumnName', 'ComputedColumnName', 'COLUMN';

Zusammenfassung des Prozesses

Um eine berechnete Spalte in eine nicht berechnete Spalte zu ändern, folgen Sie diesen einfachen Schritten:

  1. Fügen Sie eine neue Spalte zur Tabelle hinzu.
  2. Kopieren Sie die Daten von der berechneten Spalte in die neue Spalte.
  3. Löschen Sie die berechnete Spalte.
  4. (Optional) Benennen Sie die neue Spalte um, um den ursprünglichen Namen beizubehalten.

Fazit

Während SQL Server nicht direkt das Ändern einer berechneten Spalte in eine reguläre Spalte zulässt, bieten die oben genannten Schritte eine praktische Lösung, ohne Ihre vorhandenen Daten zu verlieren. Durch das Hinzufügen einer neuen Spalte, das Kopieren der Daten und das Löschen der berechneten Spalte können Sie Ihr gewünschtes Ergebnis effektiv erzielen.

Wenn Sie diesen Blog hilfreich fanden oder jemanden kennen, der von diesen Informationen profitieren könnte, zögern Sie nicht, ihn zu teilen! Für weitere SQL Server Tipps und Tricks bleiben Sie dran bei unserem Blog.