SQSHを使用して名前にスペースを持つテーブルのクエリを選択します
-
30-10-2019 - |
質問
Ubuntu 10.04でSQSH(バージョン2.1)を使用して、次のようなコマンドを使用してMSSQLデータベースに接続しています。
sqsh -S server -U user -P password -D database
テーブルと呼ばれるテーブルがありますが、選択したクエリを実行する方法が見つかりません。これは私がこれまでに試したことです:
SELECT * FROM 'My Table'
go
出力:「マイテーブル」近くの誤った構文。 (二重引用符についても同じことができます)
\set t="My Table"
SELECT * FROM $t
go
出力:無効なオブジェクト名「私の」。 (これは奇妙です。なぜなら、私が echo $ tを行うと、完全なテーブル名が得られるからです)
SELECT * FROM My\\ Table
go
出力:無効なオブジェクト名「私の」。
SELECT * FROM [My Table]
go
出力:Unicodeのみの照合またはnTextデータのUnicodeデータは、DB-Library(ISQLなど)またはODBCバージョン3.7以前を使用してクライアントに送信することはできません。
この最後のコマンドは、スペースのないテーブル名で正常に機能します。
更新:他のコマンドは正常に動作します。例:テーブルの説明を取得できます。
SELECT column_name,data_type FROM information_schema.columns WHERE table_name = 'My Table'
go
正しい解決策はありません
所属していません StackOverflow