Veröffentlicht 29. Oktober 200915 j hallo ich habe ein problem ich arbeite mit der as 400 und habe ausversehen in meiner tabellle den spaltennamen falch eingegeben wie kann ich mit einem sql befehl auf der as400 den spaltennamen ändern( change geht auf der as 400 nicht)
29. Oktober 200915 j Sprichst du hier von einer DB2 Datenbank auf einer AS400? In dem Fall würde ich es mit ALTER TABLE machen. Mit UPDATE verändert man den Wert eines Feldes, nicht den Namen des Feldes an sich.
29. Oktober 200915 j @grueni ich glaube mich erinnern zu können, dass man mit Update auch die Feldbezeichnung ändern kann... Ändert man mit Alter nicht nur den Feldtyp? MfG
29. Oktober 200915 j Da ich noch nicht genau weiß, was der Threadersteller meint, kann ich nur bißchen rumraten. Ich glaub aber nicht, daß er hier im richtigen Bereich des Forums ist. Da Update eine DML-Anweisung und keine DDL-Anweisung ist, kann man damit üblicherweise nichts an der Struktur von Tabellen ändern. Sollte das doch irgendwie gehen, lasse ich mich gerne eines Besseren belehren. Es gibt Datenbanken, bei denen man mit ALTER TABLE den Feldnamen ändern kann (z.B. bei MySQL geht das mit ALTER TABLE ... CHANGE wenn ich mich noch recht entsinne). Falls dies nicht möglich ist, muß man halt zuerst mit ALTER TABLE ... ADD COLUMN die neue Spalte hinzufügen, mit UPDATE die Daten aus der alten Spalte in die neue Spalte einfügen und mit ALTER TABLE ... DROP COLUMN die alte Spalte löschen.
29. Oktober 200915 j @grueni nene, das sicher nicht, ich dachte nur Alter wäre lediglich für das Ändern vom Feldtyp, kann natürlich sein das ich mcih irre... Ja der Weg mit dem Alter kam mir auch in den Sinn, dachte dann halt das es mit Update einfacher geht, war mir aber nichtmehr sicher, aber erstmal abwarten was der User möchte. MfG
29. Oktober 200915 j Autor ja ich meine db2 auf der as 400 =) und ddl ist es auch , da ich den SPALTENNAME (also die Strucktur) ändern möchte
29. Oktober 200915 j Wenn DB2 kein CHANGE oder ähnliches kennt, dann kannst du es auch machen, wie ich es vorher geschrieben habe: 1. Neue Spalte hinzufügen mit ALTER TABLE deineTabelle ADD COLUMN neueSpalte deinDatentyp 2. Daten in neue Spalte einfügen mit UPDATE deineTabelle SET neueSpalte=alteSpalte 3. Alte Spalte löschen mit ALTER TABLE deineTabelle DROP COLUMN alteSpalte Die genaue Syntax bei DB2 wirst du vermutlich noch nachschlagen müssen. Vielleicht gibts noch elegantere Lösungen, ich kenn mich bei DB2 nicht wirklich aus. Es wäre übrigens ausgesprochen hilfreich, wenn du deine Threads im richtigen Bereich postest und auch mit den entscheidenden Infos rüberkommst. Daß die Datenbank auf einer AS400 läuft, interessiert bei deinem Problem nicht wirklich. Daß es sich dabei aber um DB2 handelt sehr wohl.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.