2

ストアド プロシージャの複数の結果セットを一時テーブル変数に取得することは可能ですか?

次のようなストアドプロシージャを作成しました。

Create proc test1
(
 @param1 int,
 @param2 int
)
as
Begin
     Select Id, Name from Table1 where column1=@param1;
     Select Id, Age, Address from Table2 where column1=@param2;
End

このspを実行すると、2つのテーブル(レコードセット)が返されます。

今、私はこの 2 つのレコード セットを 2 つの一時テーブル変数に取得したいと考えています。

どうすればこれを達成できますか?

4

2 に答える 2

1

ストアド プロシージャが、希望どおりに複数の結果セットを返すことができるとは思えません。私が提案するのは、ストアド プロシージャに結果を 2 つのグローバル一時テーブルに格納させ、呼び出しプロセス (ストアド プロシージャを呼び出しているものは何でも) に 2 つのグローバル一時テーブルをクエリさせ、結果を一時テーブル変数に入れることです。

于 2012-09-17T12:44:55.870 に答える
0

これは古い質問であることは承知しており、あなたが何を望んでいるのか誤解しているかもしれませんが、これら 2 つのレコードセットを取得して一時テーブルに入れたい場合は、次のようにできませんでした:

Create proc test1
(
 @param1 int,
 @param2 int
)
as
Begin
     Select Id, Name 
          into #temp1
          from Table1 where column1=@param1;
     Select Id, Age, Address 
          into #temp2
          from Table2 where column1=@param2;
End

これで何を達成しようとしているのかわかりませんが、そのspの呼び出し方法によっては、spの外から#tempテーブルにアクセスできない場合があります。

于 2013-02-22T21:16:57.330 に答える