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

Wieso läßt MySQL Queries mit [..]= eckigen Klammern nicht zu?

274 views
Skip to first unread message

Hanno Rhomberg

unread,
Sep 13, 2001, 9:14:02 AM9/13/01
to
Ich suche einen gemeinsamen Nenner zwischen
MySQL und MS-SQL. Bin dabei auf folgendes
gestossen:

MySQL läßt dabei die eckigen Klammern, welche
bei MS-SQL sicherstellen dass keine Schlüssel-
wörter in Spaltennamen Probleme machen, nicht zu.

Welche Alternative gibt es?

DANKE!


Stephan Zimmermann

unread,
Sep 13, 2001, 9:58:04 AM9/13/01
to
Hanno Rhomberg schrieb:

> MySQL läßt dabei die eckigen Klammern, welche
> bei MS-SQL sicherstellen dass keine Schlüssel-
> wörter in Spaltennamen Probleme machen, nicht zu.
>
> Welche Alternative gibt es?

Keine Schlüsselwörter als Spaltennamen verwenden.

Ciao, Stephan

Hanno Rhomberg

unread,
Sep 13, 2001, 10:25:24 AM9/13/01
to
> Keine Schlüsselwörter als Spaltennamen verwenden.
>
> Ciao, Stephan

..wie schlau!?

MS-SQL verwendet schon über 200 Schlüsselwörter, außerdem
werden in Zukunft neue hinzukommen. Als Spezialist sollte man
sich nicht eigene Fallen stellen, davon kommen schon genug von
MS.

Hanno


Dominik Echterbruch

unread,
Sep 13, 2001, 10:54:14 AM9/13/01
to
Hanno Rhomberg <h.rho...@hannex.com> schrieb in im Newsbeitrag:
3ba0c1b9$0$31252$6e36...@newsreader02.highway.telekom.at...

Stimmt. Zum Beispiel eckige Klammern...

Gruß,
Dominik


Stephan Zimmermann

unread,
Sep 13, 2001, 11:09:09 AM9/13/01
to
Hanno Rhomberg schrieb:

>> Keine Schlüsselwörter als Spaltennamen verwenden.

> ..wie schlau!?
> MS-SQL verwendet schon über 200 Schlüsselwörter, außerdem
> werden in Zukunft neue hinzukommen. Als Spezialist sollte man
> sich nicht eigene Fallen stellen, davon kommen schon genug von
> MS.

Wenn Du recht sicher gehen willst, dann geh wie bei einigen
Namenskonventionen für Variablennamen vor.

Manche Leute nehmen t_xy als Tabellennamen und s_xy als Spaltennamen.
Da kannst Du dann hoffen, daß das nie Schlüsselwörter werden.

Ciao, Stephan

Hanno Rhomberg

unread,
Sep 13, 2001, 11:26:56 AM9/13/01
to
> Wenn Du recht sicher gehen willst, dann geh wie bei einigen
> Namenskonventionen für Variablennamen vor.
>
> Manche Leute nehmen t_xy als Tabellennamen und s_xy als Spaltennamen.
> Da kannst Du dann hoffen, daß das nie Schlüsselwörter werden.
>
> Ciao, Stephan

Diese Idee hatte ich auch schon - die MSler meinen jedoch: Nicht einmal
Teile der Spaltennamen dürfen Schlüsselwörter enthalten. Klingt doch
verrückt?!
Daher gibt es für diese Lösung auch keine Garantie!

Danke, Hanno

Marko Kovacic

unread,
Sep 13, 2001, 12:51:06 PM9/13/01
to
Hanno Rhomberg <h.rho...@hannex.com> schrieb in
de.comp.datenbanken.mysql:

> > Wenn Du recht sicher gehen willst, dann geh wie bei einigen
> > Namenskonventionen für Variablennamen vor.
> >
> > Manche Leute nehmen t_xy als Tabellennamen und s_xy als Spaltennamen.
> > Da kannst Du dann hoffen, daß das nie Schlüsselwörter werden.
> >
> > Ciao, Stephan
>
> Diese Idee hatte ich auch schon - die MSler meinen jedoch: Nicht einmal
> Teile der Spaltennamen dürfen Schlüsselwörter enthalten. Klingt doch
> verrückt?!

Woher hast Du diese Information?
Dann duerfte keine Spalte "alternativ", "walter" o.ae. heissen,
wenn "alter" ein Schluesselwort ist.

lg, Marko

--
> Nein, PHP ist nicht zwingend notwendig. Du kannst Deine Seite in jeder
> beliebigen Sprache nicht ins Netz stellen.
Freddy Leitner zum Thema "HTML-Code schuetzen mit PHP"
am 16.08.2001 in de.comm.infosystems.www.authoring.misc

Matthias Esken

unread,
Sep 13, 2001, 3:52:19 PM9/13/01
to
"Hanno Rhomberg" <h.rho...@hannex.com> schrieb:

> Diese Idee hatte ich auch schon - die MSler meinen jedoch: Nicht einmal
> Teile der Spaltennamen dürfen Schlüsselwörter enthalten. Klingt doch
> verrückt?!

Stimmt auch nicht.

Gruß,
Matthias

Hanno Rhomberg

unread,
Sep 14, 2001, 4:32:53 AM9/14/01
to
Ich kanns auch nicht glauben, aber im SQL Server Book steht:

Delimited Identifiers
An identifier that complies with all the rules for the format of identifiers
can be used with or without delimiters. An identifier that does not comply
with the rules for the format of regular identifiers must always be
delimited.

Delimited identifiers are used in these situations:

JETZT KOMMTS:
When reserved words are used for object names or portions of object names

It is recommended that reserved keywords not be used as object names.
Databases upgraded from earlier versions of Microsoft® SQL ServerT may
contain identifiers made of words that were not reserved in the earlier
version, but are reserved words for SQL Server version 7.0. You can refer to
the object using delimited identifiers until the name can be changed.

When using characters not listed as qualified identifiers
SQL Server allows any character in the current code page to be used in a
delimited identifier; however, indiscriminate use of special characters in
an object name may make SQL statements and scripts difficult to read and
maintain.

Types of delimiters used in Transact-SQL:

Quoted identifiers are delimited by double quotation marks ("):
SELECT * FROM "Blanks in Table Name"

Bracketed identifiers are delimited by square brackets ([ ]):
SELECT * FROM [Blanks In Table Name]

Matthias Esken

unread,
Sep 16, 2001, 1:02:46 PM9/16/01
to
"Hanno Rhomberg" <h.rho...@hannex.com> schrieb:

> JETZT KOMMTS:
> When reserved words are used for object names or portions of object names

Das gilt aber nur, wenn man nicht SQL-konforme Namen mit Leerzeichen
dazwischen zulässt. "ALTER WERT" wäre somit auch in MS-SQL ein
ungültiger Spaltenname, "ALTERNATIV" hingegen nicht.

Gruß,
Matthias

0 new messages