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 Spaltenfirst_name
undlast_name
abgeleitet ist, berechnet SQL Serverfull_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:
- Fügen Sie eine neue Spalte zur Tabelle hinzu.
- Kopieren Sie die Daten von der berechneten Spalte in die neue Spalte.
- Löschen Sie die berechnete Spalte.
- (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.