Frage zu SQL

08/09/2009 - 10:59 von ChristianH | Report spam
Hi,

wenn ich mit den Klassen aus dem ODBC-Namespace auf Tabellen zugreife,
erstelle ich die Abfrage bei Spalten mit Leerzeichen wie folgt:

Select [Spalte Vorname], [Spalte Nachname] SpalteOhneLeerzeichen FROM
MeineTabelle

Ohne die [] bei Spaltennamen mit Leerzeichen bekomme ich Fehler wegen
ungültigem SQL. Die Behandlung mit [] habe ich eingebaut, da ich den Zugriff
auf Access DBs ausprobiert habe und ich entsprechende Fehlermeldungen
bekommen habe.
Sind die [] Bestandteil vom SQL Standard oder ist dies spezifisch für Access?
Würde ich Probleme bekommen, wenn es sich um eine andere Datenquelle
handelt, die auch Leerzeichen in den Spaltennamen hat?


Grüße
Christian
 

Lesen sie die antworten

#1 Elmar Boye
08/09/2009 - 11:14 | Warnen spam
Hallo Christian,

ChristianH schrieb:
erstelle ich die Abfrage bei Spalten mit Leerzeichen wie folgt:

Select [Spalte Vorname], [Spalte Nachname] SpalteOhneLeerzeichen FROM
MeineTabelle

Sind die [] Bestandteil vom SQL Standard oder ist dies spezifisch für Access?



Die eckigen Klammern werden von Access wie vom SQL Server verstanden.

Der ANSI/ISO-SQL-Standard sieht dort doppelte Anführungszeichen vor,
z. B.: "Spalte Vorname". Was Access nur bedingt hinkriegt.
Beim SQL Server muß dazu SET QUOTED_IDENTIFER ON aktiviert sein:
<URL:http://msdn.microsoft.com/de-de/lib...3.aspx>

Würde ich Probleme bekommen, wenn es sich um eine andere Datenquelle
handelt, die auch Leerzeichen in den Spaltennamen hat?



Bei Leerzeichen (und teilweise Sonderzeichen) kriegst Du immer Probleme,
wenn Du keine Begrenzer verwendest.
Welche Begrenzer ist da abseits des ISO-SQL-Standards -
je nach RDBMS unterschiedlich.
Abseits der Begrenzer sind aber auch die Regeln für Bezeichner
bei den Datenbanksystemen in Details unterschiedlich, was Lànge
Zeichensatzregeln usw. betrifft, siehe z. B.:
<URL:http://books.google.de/books?id&oci...=false>

Gruß Elmar

Ähnliche fragen