テーブルのSQL Server 2005人の類義語を使用すると、動的なクエリ生成エラーが発生します
-
21-09-2019 - |
質問
私はで私は、サーバーA上のカタログを持っている、とサーバーB I上の同じ名前のカタログがは、いくつかののテーブルが実際にちょうど通過しているので、そのサーバーB上の同義語を使用している状況がありますサーバAへ。
ServerB.Table SELECT * FROMを呼び出す、というような、実際に透過的にServerA.Tableからのデータを返しています。これは私が選択をやっている時に正常に動作するようだ、と私はADO.NETアダプタを使用するときに私の手のTSQLスクリプトインサートは、しかし、それは動的SQLの生成があることSelectCommandに対してサポートされていません」と言って私にエラーを与える場合も罰金に動作しますすべてのベーステーブルの情報を返しません。」これは、典型的には、データが返されたときに利用可能になる主キー情報がないことを意味します。これを回避する方法はありますか? (私は、好ましくは、本当に、その使用を除外するためのオプションではないとして、シノニムを使用し続けることが可能である)。
私は常にプライマリキーである「ID」欄があることを知っている、と私はハードコードado.netアダプタ/ DataTableの必要に応じてます。
に主キー情報バックすることができ、必要に応じてありがとうございます。
解決
あなたはデータ変更操作のためのSQLCommandBuilder
を取得するためにSQL
を使用しています。
SQL
として使用するフィールドを知らないためです。 、コマンドビルダーは、更新のための適切なPK
を生成したり、テーブルから削除することはできません
あなたはあなたのデータアダプタ用に独自のUpdateCommand
とDeleteCommand
を提供する必要があります。
を参照してください。コードについては、このリンクするます。