Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   datentyp eines feldes ändern (https://www.delphipraxis.net/156760-datentyp-eines-feldes-aendern.html)

khh 14. Dez 2010 08:27

Datenbank: firebird • Version: 2.1 • Zugriff über: zeos

datentyp eines feldes ändern
 
hallo zusammen,
ich möchte per script den Datentyp eines Feldes von integer nach decimal ändern.

leider kennt Firebird modify nicht :-(

gibts ne andere Möglichkeit, ausser die Felder neu anzulegen?

Danke Gruss KH

DeddyH 14. Dez 2010 08:34

AW: datentyp eines feldes ändern
 
http://www.ibphoenix.com/main.nfs?a=...60_altercol_fs

Bernhard Geyer 14. Dez 2010 08:35

AW: datentyp eines feldes ändern
 
1, Lege eine dummy-Spalte mit neuen Feldtyp an
2, Kopiere mittels Update-Befehl die Daten aus der alten Spalte in den neuen Typ
3, Lösche die alte Spalte
4, Benenne die dummy-Spalte um.

Vor allem mittels 2, kannst du erst mal schauen ob alle Daten fehlerfrei in die neue Spalte kopiert werden können.

khh 14. Dez 2010 08:39

AW: datentyp eines feldes ändern
 
ich danke euch,
hatte gehofft es geht in einem Schritt ;-)

Gruss KHH

tsteinmaurer 15. Dez 2010 08:35

AW: datentyp eines feldes ändern
 
INTEGER auf NUMERIC sollte auch in einem Schritt machbar sein, sofern:

- Auf der Spalte keine Abhängigkeiten sind (Constraints, Triggers, Stored Procedures ...)
- Der Ziel NUMERIC Typ eine entsprechend große Ausprägung hat. So wirst du einen BIGINT z.b. in keinen NUMERIC(4,2) unterbringen

Die Syntax hat dir DeddyH über den Link schon gegeben.

mkinzler 15. Dez 2010 17:36

AW: datentyp eines feldes ändern
 
Wenn nicht hilft Berhards Lösung auf jeden Fall

tsteinmaurer 15. Dez 2010 19:02

AW: datentyp eines feldes ändern
 
Mit dem Unterschied, dass bei einer Tabelle mit vielen Datensätzen (Tabellen mit > 100 Mio. Datensätzen soll es geben) der Server viel mehr beschäftigt ist, als wenn man das Umbenennen direkt, d.h. ohne temporäre Spalte durchbekommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz