Erreur de syntaxe de requête SQL - espaces dans les noms de champ
La base de données de mon application utilise a des noms de champs contenant des espaces. Je pense que cela est la cause de mon problème. Voici un exemple typique requête:
SELECT * FROM 'OV2 BAS' AS bas
INNER JOIN 'OV2 RefID' AS ids ON 'bas.Ref ID' = 'ids.Ref ID'
WHERE ids.ENUM_H = 'TDischarge';
Comment dois-je traiter avec les espaces dans les noms de champ? Merci.
Des Informations Supplémentaires
C'est l'accès à une banque de données avec MS Access 2007 (Microsoft.ACE.OLEDB.12.0).
source d'informationauteur Jim Fell
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que vous pouvez utiliser des guillemets autour de la table nom, seul le nom que vous attribuez à elle. Je tourne la table dans des crochets à la place:
[OV2 BAS]
Vous aussi vous ne pouvez pas mettre des guillemets autour de votre adhésion de la syntaxe. Essayez plutôt ceci:
Remplacer
'
avec"
`
[
et]
Par exemple:
"OV2 BAS"
bas."Ref ID" = ids."Ref ID"
etc.Qui dépend du moteur de base de données que vous utilisez.
Pour SQL Server, vous devez mettre le nom du champ entre crochets:
[ ]
Vous n'avez pas spécifié de quel SGBD que vous utilisez, mais je devine SQL server, afin
... délimiter le champ nom entre parenthèses. À l'aide de citations que vous êtes, qui transforme le nom de champ dans une chaîne simple, qui ne sera PAS traité comme un nom de champ par SQL server.
Pour Microsoft Access, enveloppez-les noms de champs qui contiennent des espaces avec le retour des tiques par exemple, SÉLECTIONNEZ " Fre Unités DE Table