2012-01-19 13 views
7

estoy usando SQSH (versión 2.1) en Ubuntu 10.04 para conectarse a una base de datos MSSQL utilizando un comando como este:consulta SELECT en una tabla con un espacio en el nombre utilizando SQSH

sqsh -S server -U user -P password -D database 

tengo una tabla llamada Mi Tabla, pero no puedo encontrar una forma de ejecutar una consulta SELECT sobre ella. Esto es lo que he intentado hasta ahora:

SELECT * FROM 'My Table' 
go 

Salida: Sintaxis incorrecta cerca de 'Mi Tabla'. (Obtengo lo mismo para comillas dobles)

\set t="My Table" 
SELECT * FROM $t 
go 

Salida: Nombre de objeto no válido 'Mi'. (Lo cual es raro porque si lo hago \ echo $ t, me sale el nombre de la tabla completa)

SELECT * FROM My\\ Table 
go 

de salida: nombre de objeto no válido 'Mi'.

SELECT * FROM [My Table] 
go 

Salida: datos Unicode en un sólo Unicode cotejo de datos ntext o no pueden ser enviados a los clientes mediante DB-Library (como ISQL) u ODBC versión 3.7 o anterior.

Este último comando funciona bien para los nombres de tablas sin espacios.

ACTUALIZACIÓN: otros comandos funcionan bien, p. Puedo obtener la descripción de la tabla con:

SELECT column_name,data_type FROM information_schema.columns WHERE table_name = 'My Table' 
go 
+0

Usted está utilizando Sybase y tiene una tabla con espacios en el nombre? –

+1

No, es una base de datos MSSQL. Lo siento, tal vez las etiquetas fueron engañosas. – jackocnr

+0

¿Puedes probar qué sucede si eliminas el espacio del nombre de la tabla? –

Respuesta

2

Finalmente encontrado the solution. He tenido que añadir las siguientes líneas 2 a /etc/freetds/freetds.conf

tds version = 8.0 
client charset = UTF-8 
8

Poner el nombre de tabla entre comillas no funciona en MS SQL Server.
La forma correcta está utilizando [ ]:

SELECT * FROM [My Table] 
+0

Gracias, pero como dije en la pregunta, eso no funcionó para mí. Me faltaban algunas configuraciones (ver mi respuesta), y una vez que las tenía, la consulta SELECT funcionaba con comillas o corchetes. – jackocnr

2

Im utilizando SQL 2008R2, y las siguientes obras para mí

['table name'] 
Cuestiones relacionadas