Auswählen eine Spalte, deren name ein reserviertes SQL-Schlüsselwort ist
Betrachten Sie die unten stehende Tabelle "sample_table"
id name desc
-------------------------
1 kkt kkt description
1 skt skt description
ist es trotzdem kann ich wählen Sie die Dritte Spalte, ohne über seinen Namen desc
?
Versuchen select desc from mytable
wirft einen Fehler
Bitte vorschlagen.
Dank,
Balan
- KEINE Sie können den Zugriff auf SQL Server Spalten, die durch einen numerischen index.... und man sollte nicht entweder - die Reihenfolge der Spalten in einer relationalen Tabelle bedeutungslos und Sie sollten nicht code schreiben, der setzt auf, die
- Nicht ohne dynamisches sql, und wenn Sie könnten, es wäre eine wirklich schlechte Idee. Was passiert, wenn jemand ändert die Reihenfolge der Spalten in Ihrer Tabelle.
- Ok.. ich werde nicht diese Methode verwenden.. Danke für die Erwähnung..
- Es ist möglich, ohne Dynamik, aber ich Stimme es ist eine schlechte Idee.
- Das ist, warum Sie nicht versuchen zu Steuern, die Lösung für ein problem. Wenn Sie angegeben haben, die Frage als "meine Datenbank benutzt ein reserviertes Wort für eine Spalte, wie wähle ich" Sie würde bekommen haben eine Antwort in etwa einer Mikrosekunde.
- Yup.. ich habe daraus gelernt.. sollte ich gepostet haben, meine Frage direkt...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehe ich nicht, warum Sie dies brauchen, und ich würde nie verwende es selbst.
Update
Sollten Sie tun, wie Sie diese stattdessen.
Verwenden
[]
rund um die Spaltennamen, die reservierte Wörter.[]
rund um die Spaltennamen, die reservierte Wörter. Aktualisierte Antwort.Verwenden standard-SQL-Bezeichner in Anführungszeichen um Spaltennamen, die zu den reservierten Wörtern z.B.
`desc`
funktioniert, aber"desc"
hat bei mir nicht funktioniert. Sie können eine Ergänzung zu deiner Antwort`.select mytable.desc from mytable;
funktionieren für mich
Wird diese Hilfe:
Vom http://www.daniweb.com/web-development/databases/ms-sql/threads/341388
Nur so können Sie gehen, Schießen selbst in den Fuß, hier ist, wie Sie es tun konnte, mit dynamischem sql: