Tôi đang sử dụng SQSH (phiên bản 2.1) trên Ubuntu 10.04 để kết nối với một cơ sở dữ liệu MSSQL sử dụng một lệnh như thế này:truy vấn SELECT trên bảng với một không gian trong tên sử dụng SQSH
sqsh -S server -U user -P password -D database
Tôi có một bảng được gọi là Bảng của tôi, nhưng tôi không thể tìm thấy một cách để chạy một truy vấn SELECT trên nó. Đây là những gì tôi đã thử cho đến thời điểm này:
SELECT * FROM 'My Table'
go
Đầu ra: Cú pháp không chính xác gần 'Bảng của tôi'. (Tôi nhận được cùng một dấu ngoặc kép)
\set t="My Table"
SELECT * FROM $t
go
Đầu ra: Tên đối tượng không hợp lệ 'My'. (Thật lạ lùng vì nếu tôi làm \ echo $ t, tôi lấy tên đầy đủ của bảng)
SELECT * FROM My\\ Table
go
Đầu ra: Tên đối tượng không hợp lệ 'My'.
SELECT * FROM [My Table]
go
Dữ liệu Unicode không thể gửi cho khách hàng sử dụng DB-Library (ISQL) hoặc ODBC phiên bản 3.7 hoặc cũ hơn.
Lệnh cuối cùng này hoạt động tốt đối với tên bảng mà không có bất kỳ dấu cách nào.
CẬP NHẬT: các lệnh khác hoạt động tốt, ví dụ: Tôi có thể tải xuống mô tả bảng với:
SELECT column_name,data_type FROM information_schema.columns WHERE table_name = 'My Table'
go
Bạn đang sử dụng Sybase và bạn có một bảng với các không gian trên tên? –
Không, đó là cơ sở dữ liệu MSSQL. Rất tiếc, có thể các thẻ đã gây hiểu nhầm. – jackocnr
Bạn có thể kiểm tra điều gì sẽ xảy ra nếu bạn xóa không gian khỏi tên bảng? –