Philipp Hasenfratz: Korrektur

Beitrag lesen

Halihallo Klaus

Was auch immer im Query steht, wird, nach Möglichkeit, in den Datentyp der Datenbank "übersetzt". Ist die ID ein nummerischer Wert, wird also nicht alphanummerisch sortiert, egal ob da gequotet ist oder nicht.

Dieses Verhalten muß aber, wenn überhaupt, nicht für alle Datenbanksysteme gelten. Es kann z.B. durchaus auch sein, daß dadurch verhindert wird, daß auf Indizes zurückgegriffen werden kann, womit solche Statements full-table-scans auslösen (bei Oracle ist dies afaik so).

Meines Erachtens wäre dies jedoch ein Fehler im Algorithmus. Oder was spricht dafür, dass das Quoting die Indizies verhindert? - Der Datentyp wird ja von der Datenbank vorgegeben, ist also "verbindlich". Dadurch muss notgedrungen der Wert, ob in Quotes oder nicht, umgewandelt werden. Warum dadurch der "Anspruch" auf den Index verfällt scheint mir unlogisch. Aber vielleicht hab ich was nicht beachtet!?

Außerdem ist imho der intensive Gebrauch von Quotes in  SQL-Statements unsinnig. Wozu es gut sien, Tabellen- und Feldnamen unter Qoutes zu stellen? Das ist, wiederum afaik, nur in einigen wenigen Datenbanksystemen überhaupt erlaubt. Wird dann auf eine andere Datenbank gewechselt, aus welchen Gründen auch immer, so sind sämtliche Statements anzupassen (ok, ich weiß daß das meist sowieso notwendig ist).

Stimmt. Wie der Datentyp werden auch die Namen durch die Datenbank festgelegt; letztere dürfen auch keine SpecialChars enthalten (was ein Argument für Quotes sein könnte). Die Feld- und Tabellennamen sind analog zu Variablen in Programmiersprachen und in welcher Sprache hat man es noch gesehen, dass Variablen gequotet werden??? - IMO ist dies nur bei den Werten sinnvoll; nicht jedoch bei Namen. Also: ein ACK für dich :-)

Viele Grüsse

Philipp