Feld in Datenbank per SQL umbenennen, massives Problem!

03/09/2010 - 15:40 von Stefan Koschke | Report spam
Hallo zusammen

ich habe in meiner Unwissenheit vor Jahren in einer Tabellenstruktur ein
Feld Namens "Minute" definiert. Das ging klaglos in Access.
Spàter wurde die gesamte Tabellenstruktur in SQL-Server übernommen,
ebenso klaglos.

Nun aber knallt es bei bestimmten Transact-SQL-Anweisungen wenn ich das
Feld "Minute" verwende.

Ich muß also in hunderten mdb-Dateien und mehreren hundert SQL-Tabellen
das Feld Minute umbenennen ohne die Daten zu zerstören.

Auch hier bei "RENAME COLUMN..." gibt es Probleme mit dem Feldnamen.

Hat jemand eine Idee, wie ich automatisiert doch die in allen
betroffenen Tabellen das Feld "Minute" in z.B. "Minu" umbenannt bekomme?

Danke
Ciao
Stefan
 

Lesen sie die antworten

#1 Peter
03/09/2010 - 16:19 | Warnen spam
Stefan Koschke wrote:

Hallo zusammen

ich habe in meiner Unwissenheit vor Jahren in einer Tabellenstruktur
ein Feld Namens "Minute" definiert. Das ging klaglos in Access.
Spàter wurde die gesamte Tabellenstruktur in SQL-Server übernommen,
ebenso klaglos.

Nun aber knallt es bei bestimmten Transact-SQL-Anweisungen wenn ich
das Feld "Minute" verwende.

Ich muß also in hunderten mdb-Dateien und mehreren hundert
SQL-Tabellen das Feld Minute umbenennen ohne die Daten zu zerstören.

Auch hier bei "RENAME COLUMN..." gibt es Probleme mit dem Feldnamen.

Hat jemand eine Idee, wie ich automatisiert doch die in allen
betroffenen Tabellen das Feld "Minute" in z.B. "Minu" umbenannt
bekomme?



Es gibt eigentlich bei allen SQL Datenbanken, die ich kenne, eine
Möglichkeit, Namen, die mit irgendwelchen reserved words kollidieren,
in bestimmte Zeichen einzuschließen, um der SQL Engine klarzumachen,
daß da ein Spalten- oder Tabellenname gemeint ist. SQL Server kenne ich
leider nicht. Versuch mal [Minute] oder "Minute" anstelle von Minute
alleine. Man beachte, daß die Namen mit einem solchen Konstrukt
normalerweise auch case-sensitive werden, obwohl SQL selbst ja nicht
case-sensitive ist.

Peter Below

Ähnliche fragen