テーブルのSQL Server 2005人の類義語を使用すると、動的なクエリ生成エラーが発生します

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

質問

私はで私は、サーバーA上のカタログを持っている、とサーバーB I上の同じ名前のカタログがは、いくつかののテーブルが実際にちょうど通過しているので、そのサーバーB上の同義語を使用している状況がありますサーバAへ。

ServerB.Table SELECT * FROMを呼び出す、というような、実際に透過的にServerA.Tableからのデータを返しています。これは私が選択をやっている時に正常に動作するようだ、と私はADO.NETアダプタを使用するときに私の手のTSQLスクリプトインサートは、しかし、それは動的SQLの生成があることSelectCommandに対してサポートされていません」と言って私にエラーを与える場合も罰金に動作しますすべてのベーステーブルの情報を返しません。」これは、典型的には、データが返されたときに利用可能になる主キー情報がないことを意味します。これを回避する方法はありますか? (私は、好ましくは、本当に、その使用を除外するためのオプションではないとして、シノニムを使用し続けることが可能である)。

私は常にプライマリキーである「ID」欄があることを知っている、と私はハードコードado.netアダプタ/ DataTableの必要に応じてます。

に主キー情報バックすることができ、必要に応じて

ありがとうございます。

役に立ちましたか?

解決

あなたはデータ変更操作のためのSQLCommandBuilderを取得するためにSQLを使用しています。

何のメタデータは、リモート・テーブルで返されませんので、それはSQLとして使用するフィールドを知らないためです。

、コマンドビルダーは、更新のための適切なPKを生成したり、テーブルから削除することはできません

あなたはあなたのデータアダプタ用に独自のUpdateCommandDeleteCommandを提供する必要があります。

を参照してください。コードについては、このリンクするます。

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