Sélectionnez la requête sur une table avec un espace dans le nom en utilisant SQSH

StackOverflow https://stackoverflow.com/questions/8926673

  •  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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top