リンクサーバーを使用して他のデータベースからデータをプルする複雑なストアドプロシージャがあります。このデータは、出力用の選択クエリで結合された一時テーブルに格納されます。プロシージャは正常に動作しますが、ビジュアルスタジオでは、デザイナを使用してストアドプロシージャをデータセットに追加しようとすると、オブジェクト名#tmpまたは最初のtempテーブルが呼び出されたときにエラーが発生します。データベーススキーマを取得できません。これは、ASP.NETでsqldatasourceを使用する場合と同じです。Visual Studioのテンポラリテーブルを使用するストアドプロシージャのフィールドスキーマを取得する
この手順はまだ使用できますが、出力するすべての列を手動でデータテーブルに追加する必要があります。これは手作業で行う苦痛であり、Visual Studioがストアドプロシージャからの出力フィールドを収集する方法と関係があると仮定しますが、通常の方法で実行するようには見えません。私はこれを行うにはかなりの時間がかかるので、これを修正する方法があります。手動ですべての列を追加する必要はありません。時間がかかり、エラーが発生しやすくなります。
ストアドプロシージャの代わりにテーブル値関数を使用できない理由はありますか? – Wilhelm
私は知っている限り、関数内で動的SQLまたはオープンクエリを使用することはできません。私が間違っているなら、私を訂正してください。 – PeteT
はるかに多くの研究の後、私自身の質問に答えました。奇妙な解決策があります。 – PeteT