フィールド名にピリオドを含むSQL ServerビューへのJet ODBCリンクを作成するにはどうすればよいですか?

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

質問

Access 2003(Jet)データベースから、次のようなピリオドを含むエイリアスフィールド名を含むSQL ServerホストビューへのODBCリンクを作成する必要があります。

Seq.Group

ビューの背後のSQLソースでは、フィールド名は角括弧で囲まれています...

SELECT Table._Group AS [Seq.Group]

... SQL Serverはビューの作成について文句を言いませんが、Jet DBから(プログラムまたはAccess 2003 UIを介して)ODBCリンクを作成しようとすると、エラーメッセージが表示されます:

  

'Seq.Group'は有効な名前ではありません。作る   無効なものが含まれていないことを確認してください   文字または句読点とその   長すぎません。

残念ながら、ビューの構造は別の製品の一部であるため、変更できません。そのため、フィールド名はそのままの状態にしています。句読点のないフィールド名を使用して独自のビューを追加することはできますが、アップグレード、修正プログラムなどがあるたびに別のメンテナンスポイントになるので、SQL Serverを変更しないでください。 。誰かがより良い回避策を知っていますか?

役に立ちましたか?

解決

技術的にドットをエスケープすることはできませんでしたが、実際にあなたの提案は did して、別の代替案を実現しました。どうすれば「合格」するのだろうと思いながら" SQL"へのエスケープコードサーバー、それは私に夜明け:なぜ「SQLパススルークエリ」を使用しないのですか? ODBCリンクテーブルの代わりに? SQL Serverデータへの読み取りアクセスのみが必要なので、正常に機能します!ありがとう!

他のヒント

ここで推測するだけで、ドットをエスケープしようとしましたか? " [Seq \ .Group]"?

のようなもの

別の提案は、既存のビューを変更するのではなく、SQLサーバーに新しいビューを追加することです。最初のビューが「ソリューション」の一部であっても、新しいビューを追加することを禁止するものはありません:

SELECT Table._Group AS [Seq_Group]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top