80列と300行を返すストアドプロシージャがあります。これらの列のうち2つを取得する選択を記述したいと思います。何かのようなもの
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
上記の構文を使用すると、エラーが発生します。
「無効な列名」。
ストアドプロシージャを変更することが最も簡単な解決策であることはわかっていますが、私はそれを記述しておらず、変更することはできません。
やりたいことはありますか?
結果を入れる一時テーブルを作成することもできますが、80列なので、2列を取得するためだけに80列の一時テーブルを作成する必要があります。返されたすべての列を追跡しないようにしたいと思いました。
WITH SprocResults AS ....
マークの提案に従って使用してみましたが、2つのエラーが発生しましたキーワード「EXEC」付近の構文が正しくありません。
「)」付近の構文が正しくありません。テーブル変数を宣言しようとすると、次のエラーが発生しました
挿入エラー:列名または指定された値の数がテーブル定義と一致しません
私がしよう
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
とすると、エラーが発生します:キーワード「exec」付近の構文が正しくありません。
EXEC
はMySQLキーワードではありません(MySQLの同等物は準備済みステートメントです)。MySQLの答えを知りたいのですが、以下の答えはT-SQLを対象としています。再タグ付け。