Sélectionnez la requête sur une table avec un espace dans le nom en utilisant SQSH
-
30-10-2019 - |
Question
J'utilise SQSH (version 2.1) sur Ubuntu 10.04 pour me connecter à une base de données MSSQL à l'aide d'une commande comme celle-ci:
sqsh -S server -U user -P password -D database
J'ai une table appelée ma table, mais je ne trouve pas de moyen d'exécuter une requête sélectionnée dessus. C'est ce que j'ai essayé jusqu'à présent:
SELECT * FROM 'My Table'
go
Sortie: syntaxe incorrecte près de «ma table». (Je reçois la même chose pour les doubles citations)
\set t="My Table"
SELECT * FROM $t
go
Sortie: nom d'objet non valide «my». (Ce qui est bizarre parce que si je fais echo $ t, je reçois le nom complet de la table)
SELECT * FROM My\\ Table
go
Sortie: nom d'objet non valide «my».
SELECT * FROM [My Table]
go
Sortie: les données UNICODE dans une collation UNICODE uniquement ou NEXT ne peuvent pas être envoyées aux clients à l'aide de DB-Library (telles que ISQL) ou ODBC version 3.7 ou antérieure.
Cette dernière commande fonctionne bien pour les noms de table sans espaces.
Mise à jour: les autres commandes fonctionnent bien, par exemple, je peux obtenir la description du tableau avec:
SELECT column_name,data_type FROM information_schema.columns WHERE table_name = 'My Table'
go
Pas de solution correcte