SQSHを使用して名前にスペースを持つテーブルのクエリを選択します

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

  •  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

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top