私は、私が見つけたさまざまな方法を使用して、ストアドプロシージャの出力を一時テーブルまたはテーブル変数に保存しようとしています。ストアドプロシージャからの広範な結果セットを一時テーブルまたはテーブル変数に挿入する方法はありますか?
私は一時テーブルを宣言してからやって試してみた:ストアドプロシージャが結果セットで約550の列を持っているので、私は、問題に実行しているよ
INSERT INTO #temptable EXEC storedprocedurename
。最大行サイズが8060バイトを超えているため、ワイドテーブルを作成できません。
残念ながら、ストアドプロシージャを編集する機能はありませんが、実際には約200個のカラムにアクセスする必要があります。サイズの問題を回避するために、テーブル変数または一時テーブルにそれらを貼り付けたり、テーブルの結果全体を固定したりしているのですか?
私はOPENROWSET
も調べましたが、使用しているSQLサーバーではADHOCクエリを有効にすることはできません。私が知っている唯一のことは、ストアドプロシージャのクローンを作成し、私が必要としないカラムの1/2を取り除くことですが、ソースストアドプロシージャはこれまでどおり変更されており、私はそれについてはわかりません。
550カラムあなたが戻ってくる200の列で何をしていますか? - おそらく、SQLの外側とアプリケーション層で、より小さなサブセットの列を選択できる優れたソリューションがありますか? –
私は同意します。しかし、私が与えられた要求/タスクは、これらの200の列を報告のために利用可能にすることです。私は同じストアドプロシージャを使用するCrystalレポートの実行の結果としてより多くの研究が必要な場合に追加の詳細をクエリするために使用できるレポートテーブルを構築するために、データベースの多くの行に対してストアドプロシージャを実行しています。 もっと良い方法があると私は同意しますが、尋ねることに基づいて私は自分ができることには限界があります。 – sallou