Anmelden

View Full Version : SQL Datenfeld in Tabelle einfügen



Seiten : [1] 2 3

XMan
23-08-13, 10:10
Hallo Gemeinde,

besteht die Möglichkeit ein Datenfeld in eine DB an eine bestimmte Stelle einfügen zu können?

Beispiel:
Datensatz hat Felder.
- Nummer
- Kunde
- Adresse
- User ...

nun möchte ich gerne zwishen Kunde und Adresse das Feld Firma einfügen.
Ist das möglich?

Thx!

Fuerchau
23-08-13, 10:15
Bei SQL-Tabellen ist die Position des Feldes unerheblich.
Es gibt auch keinen SQL-Befehl dafür.

Was du machen kannst:
Eine neue Tabelle mit den Feldern in der gewünschten Folge erstellen und per "insert into Neu (f1, f2, ..., fn) select f1, f2, < default > , ..., fn from Alt" kopieren.
Zum Schluss nur noch umbenennen und fertig.
Nunja, Indizes, Views auf "Alt" ... sind natürlich ebenso dann umzubiegen.

XMan
23-08-13, 10:21
Hmm, schade.
Muss ich dann den von dir beschriebenen Weg gehen (möchte einfach bestimmte Felder in einer Reihenfolge haben - nur für mich ;) )

Aber Danke!

B.Hauser
23-08-13, 10:30
Korrektur Vor Release 7.1 gab es keinen Weg eine Spalte an einer bestimmten Stellen in eine Tabelle einzufügen!

Seit Release 7.1 ist das möglich!

Dazu muss man lediglich nach der Spalten-Definition BEFORE und den Spalten-Namen, vor der die neue Spalte eingefügt werden soll angeben:


ALTER TABLE YourLib/YourTable
ADD COLUMN NewColumn CHARACTER (10) NOT NULL DEFAULT
BEFORE ColumnX;

Birgitta

Pikachu
23-08-13, 10:37
Oder eine passende DDS-Quelle erstellen und CHGPF SRCFILE(...) SRCMBR(...).

Fuerchau
23-08-13, 10:48
Allerdings frage ich mich, wofür das gerade bei SQL-Tabellen nötig ist.

Pikachu
23-08-13, 11:00
Vielleicht damit der SELECT * FROM TABELLE aufgeräumt aussieht. ;)

Fuerchau
23-08-13, 11:02
Dies gilt aber doch nur für Dialog-SQL's, im Programm ist das doch vollkommen egal.
Aber wenn's Freude macht :).

XMan
23-08-13, 11:18
Yes Yes Yes, Danke!

Ich will das haben, dann sieht die DB für mich besser aus :D

schönes Wochenende!

LG

XMan
06-09-13, 08:04
Korrektur Vor Release 7.1 gab es keinen Weg eine Spalte an einer bestimmten Stellen in eine Tabelle einzufügen!

Seit Release 7.1 ist das möglich!

Dazu muss man lediglich nach der Spalten-Definition BEFORE und den Spalten-Namen, vor der die neue Spalte eingefügt werden soll angeben:


ALTER TABLE YourLib/YourTable
ADD COLUMN NewColumn CHARACTER (10) NOT NULL DEFAULT
BEFORE ColumnX;Birgitta

Möchte das Thema nochmals aufgreifen.
Besteht auch die Möglichkeit bestehende Felder in der Reihung zu verschieben?
Beispiel:
-Name
-Vorname
-Straße
-Ort
-PLZ

nun möchte ich PLZ vor Ort stellen.

Geht das?

Thx