Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Feldnamen einer Tabelle per SQL ändern

255 views
Skip to first unread message

Gerhard Förster

unread,
Nov 30, 2007, 4:13:34 AM11/30/07
to
Hallo und moin, moin

ich hab noch ein SQL PÜroblem.
Ich möchte den Feldnamen in einer Tabelle per SQL Anweisung ändern.
Dazu ist programmiert:

db1.Execute "ALTER TABLE T_cPool1 RENAME COLUMN IDT_PA TO IDT_cPool"

Es kommt der Fehler: 3293
Syntaxfehler in ALTER TABLE Anweisung.

Was ist hier falsch.
Wer weiß Rat und kann helfen?
Danke Gerhard

Peter Doering

unread,
Nov 30, 2007, 5:33:33 AM11/30/07
to
Hallo,

Gerhard Förster wrote:

> Ich möchte den Feldnamen in einer Tabelle per SQL Anweisung ändern.
> Dazu ist programmiert:
>
> db1.Execute "ALTER TABLE T_cPool1 RENAME COLUMN IDT_PA TO IDT_cPool"
>
> Es kommt der Fehler: 3293
> Syntaxfehler in ALTER TABLE Anweisung.
>
> Was ist hier falsch.

Diese Funktion existiert nicht. Um die Spalte umzubenennen musst du sie
loeschen und neu anlegen:

ALTER TABLE T_cPool1 DROP COLUMN IDT_PA
ALTER TABLE T_cPool1 ADD COLUMN IDT_PA TEXT(255)

Gruss - Peter

--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Gerhard Förster

unread,
Nov 30, 2007, 6:02:16 AM11/30/07
to
Hallo Peter,

> Diese Funktion existiert nicht. Um die Spalte umzubenennen musst du sie
> loeschen und neu anlegen:

Danke für die Auskunft. Das hatte ich fast befürchtet.
Mein Problem ist aber, dass das Feld IDT_PA ein Feld mit Auto
Increment ist, und ich die automatisch ermittelten Zähler unbedingt
brauche.
Wenn ich jetzt das Feld lösche und neu anlege, sind die Zähler ja weg.

Ich habe jetzt versucht, das Feld gleich unter anderem Namen zu
kopieren:

SELECT idt_pa AS idt_cpool, INTO T_cPool1 IN " & "'" & zwsp & "'" & "
from t_pipatt

so wie ich das in der Tabellenerstellungsabfrage gefunden habe.

Das bringt aber den Fehler 3141,
Die Select Anweisung schließt ein reserviertes Wort oder einen
Argumentnamen ein,
der/das falsch, mit falscher Zeichensetzung oder überhaupt nicht
eingegeben wurde.

Weißt du da noch Hilfe ?

Danke Gerhard


>
> Gruss - Peter
>

Peter Doering

unread,
Nov 30, 2007, 9:05:27 PM11/30/07
to
Hallo,

Gerhard Förster wrote:
>
>> Diese Funktion existiert nicht. Um die Spalte umzubenennen musst du sie
>> loeschen und neu anlegen:
>

> Mein Problem ist aber, dass das Feld IDT_PA ein Feld mit Auto
> Increment ist, und ich die automatisch ermittelten Zähler unbedingt
> brauche.
> Wenn ich jetzt das Feld lösche und neu anlege, sind die Zähler ja weg.

Das ist richtig. Warum machst du das eigentlich? Was ist die Anforderung
dahinter? Vielleicht gibt's ja einen anderen Weg.

> Ich habe jetzt versucht, das Feld gleich unter anderem Namen zu
> kopieren:
>
> SELECT idt_pa AS idt_cpool, INTO T_cPool1 IN " & "'" & zwsp & "'" & "
> from t_pipatt

Zumindest gehoert vor dem INTO kein Komma hin.

Henry Habermacher

unread,
Dec 3, 2007, 4:50:22 AM12/3/07
to
Hallo Peter

Peter Doering wrote:
>> db1.Execute "ALTER TABLE T_cPool1 RENAME COLUMN IDT_PA TO IDT_cPool"

> Diese Funktion existiert nicht. Um die Spalte umzubenennen musst du sie


> loeschen und neu anlegen:
>
> ALTER TABLE T_cPool1 DROP COLUMN IDT_PA
> ALTER TABLE T_cPool1 ADD COLUMN IDT_PA TEXT(255)

Umgekehrt wäre evt. besser, falls da schon Felder drin sind, zudem soll das
Feld ja IDT_cPool heissen, also so (ungetestet):

CurrentDB.Execute "ALTER TABLE T_cPool1 ADD COLUMN IDT_cPool TEXT(255)",
dbFailOnError
CurrentDB.Execute "UPDATE T_cPool1 SET IDT_cPool = IDT_PA WHERE IDT_PA IS
NOT NULL", dbFailOnError
CurrentDB.Execute "ALTER TABLE T_cPool1 DROP COLUMN IDT_PA", dbFailOnError

Gruss
Henry


--
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

0 new messages