(MSSQL9.0) Syntax-Fehler in Query
globe
- datenbank
n'abend,
Ich habe eine MSSQL-Query gegeben bekommen, die ich mittels PHP auf den SQL Server 2005 9.0 schiessen soll. Mit MSSQL habe ich - augenscheinlich - keine größeren Erfahrungen.
Query:
SELECT
"SOME THING$Fixed Asset".No_ As Nummer,
"SOME THING$Fixed Asset".Description As Beschreibung
FROM "SOME THING$Fixed Asset"
Fehlermeldung lautet:
Falsche Syntax in der Nähe von 'SOME THINGS$Fixed Asset'. (severity 15)
Infos:
Microsoft SQL Server 2005 9.0
Zugriff über PHP5.2 mit mssql_query()
"SOME THING$Fixed Asset" existiert laut Rückfrage in INFORMATION_SCHEMA.TABLES:
TABLE_SCHEMA: dbo
TABLE_TYPE: BASE TABLE
TABLE_NAME: SOME THING$Fixed Asset
Kann mich mal bitte kurz jemand aufklären was es mit dem $ auf sich hat und wie diese Query korrekterweise lauten sollte?
weiterhin schönen abend...
Hello,
Ich habe eine MSSQL-Query gegeben bekommen, die ich mittels PHP auf den >> ~~~sql
SELECT
"SOME THING$Fixed Asset".No_ As Nummer,
"SOME THING$Fixed Asset".Description As Beschreibung
FROM "SOME THING$Fixed Asset"
und du bist sicher, dass PHP da nicht irgendwas hätte befüllen sollen?
MfG
Rouven
--
\-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& ([SelfCode](http://selfspezial.atomic-eggs.com/scode/selfcode.php?encodieren))
Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
n'abend,
und du bist sicher, dass PHP da nicht irgendwas hätte befüllen sollen?
hehe... nein, das ist definitiv keine PHP Variable. Zumal der "Tabellenname" ja auch exakt so im INFORMATION_SCHEMA steht...
weiterhin schönen abend...
Hi globe!
Versuch mal
SELECT
A.No_ As Nummer,
A.Description As Beschreibung
FROM [SOME THING$Fixed Asset] A
Das funktioniert zumindest mit MSSQL-Server 2005.
MfG H☼psel
n'abend,
SELECT
A.No_ As Nummer,
A.Description As Beschreibung
FROM [SOME THING$Fixed Asset] A
»Ungültiger Objektname 'SOME THINGS$Fixed Asset'. (severity 16)«
weiterhin schönen abend...
--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
Hallo globe,
Ich habe eine MSSQL-Query gegeben bekommen, die ich mittels PHP auf den SQL Server 2005 9.0 schiessen soll. Mit MSSQL habe ich - augenscheinlich - keine größeren Erfahrungen.
es ist eine verflixt gute Idee, das Original-Statement zu posten und nicht irgendetwas völlig anderes. Zumindest eines, mit dem sich der Fehler reproduzieren läßt:
SELECT
"SOME THING$Fixed Asset".No_ As Nummer,
"SOME THING$Fixed Asset".Description As Beschreibung
FROM "SOME THING$Fixed Asset"
kannst Du \*nicht\* verwendet haben, weil Da kein THINGS$ vorkommt, sondern nur THING$
Das passt schon mal nicht - und ist daher wenig hilfreich:
> Fehlermeldung lautet:
> Falsche Syntax in der Nähe von 'SOME THINGS$Fixed Asset'. (severity 15)
gibts nicht, kann nicht auftreten, ist daher für Dein Problem irrelevant.
BTW, warum verwendest Du keinen vernünftigen Aliasnamen für Deine Tabelle?
> Infos:
> Microsoft SQL Server 2005 9.0
> Zugriff über PHP5.2 mit mssql\_query()
>
> "SOME THING$Fixed Asset" existiert laut Rückfrage in INFORMATION\_SCHEMA.TABLES:
> TABLE\_SCHEMA: dbo
> TABLE\_TYPE: BASE TABLE
> TABLE\_NAME: SOME THING$Fixed Asset
Kein Wunder, dass er SOME THINGS$Fixed Asset anmeckert. Gar kein Wunder.
> Kann mich mal bitte kurz jemand aufklären was es mit dem $ auf sich hat und wie diese Query korrekterweise lauten sollte?
keine. $ ist ein erlaubtes nachfolgendes Zeichen.
tabelle$
ist in Transact-SQL ein den Regeln für reguläre Bezeichner zulässiger Name.
Das Sonderzeichen, das Begrenzungszeichen ("" oder []) erfordert, ist das Leerzeichen.
Grundsätzlich läßt sich feststellen: Du machst etwas falsch. Deine Informationen sind nicht ausreichend, um Dir Deinen Fehler aufzeigen zu können. Falls Deine Tabelle so heißt wie angegeben, führt Dein Statement nicht zu einer Fehlermeldung.
Freundliche Grüße
Vinzenz
n'abend,
es ist eine verflixt gute Idee, das Original-Statement zu posten und nicht irgendetwas völlig anderes.
»if i want sarcasm, mr. bond, i'll talk to my kids.«
Ne, im Ernst, "SOME THING(S)" ist natürlich frei erfunden. Ich kann schlecht den eigentlichen Namen preisgeben, wenn das dummerweise der Firmenname ist. Würden die sich mal googlen™, wär das eher nicht so toll.
Der letzte Versuch läuft zwischenzeitlich übrigens. Offenbar haben mir die Helden der IT zwar einen Benutzer geschenkt und eine Query geliefert, aber offenbar vergessen dem Benutzer einzuräumen die nötige Tabelle auslesen zu dürfen. In dem Fall ist die Fehlermeldung "Ungültiger Objektname" aber auch mal sehr... zielführend.
Danke an die beteiligten Helferlein.
weiterhin schönen abend...