sto usando sqsh (versione 2.1) su Ubuntu 10.04 per connettersi a un database MSSQL utilizzando un comando come questo:query SELECT su una tabella con uno spazio nel nome utilizzando sqsh
sqsh -S server -U user -P password -D database
Ho un tabella denominata My Table, ma non riesco a trovare un modo per eseguire una query SELECT su di esso. Questo è quello che ho provato fino ad ora:
SELECT * FROM 'My Table'
go
Uscita: sintassi errata vicino a "La mia tabella". (Ho la stessa cosa per le doppie virgolette)
\set t="My Table"
SELECT * FROM $t
go
uscita: nome oggetto non valido 'mio'. (Il che è strano perché se lo faccio \ echo $ t, ottengo il nome completo tavolo)
SELECT * FROM My\\ Table
go
uscita: nome oggetto non valido 'mio'.
SELECT * FROM [My Table]
go
in uscita: i dati Unicode in un solo Unicode regole di confronto o di dati ntext non possono essere inviati ai clienti utilizzando DB-Library (come ISQL) o ODBC versione 3.7 o precedenti.
Quest'ultimo comando funziona correttamente per i nomi di tabella senza spazi.
AGGIORNAMENTO: altri comandi funzionano bene, ad es. Posso ottenere la descrizione della tabella con:
SELECT column_name,data_type FROM information_schema.columns WHERE table_name = 'My Table'
go
Stai usando Sybase e si dispone di un tavolo con gli spazi sul nome? –
No, è un database MSSQL. Spiacente, forse i tag erano fuorvianti. – jackocnr
Puoi verificare cosa succede se rimuovi lo spazio dal nome della tabella? –