2

複数のテーブル結果を返す別のストアド プロシージャ (sp2) 内でストアド プロシージャ (sp1) を呼び出すことはできますか?

実行されたストアド プロシージャ (sp2) で返された結果を使用する必要があります。

私の知る限り、これは不可能です。でも確かめたい。

この種の要件を達成するための代替手段はありますか?

4

2 に答える 2

4

1 つの結果セットINSERT INTO <table> EXEC <sp>に使用できます。

しかし、それは複数の結果セットでは機能しません。

そして、それをネストすることはできません。 (SP2 は SP1 を呼び出すときに使用できます。ただし、SP3 は SP2 を呼び出すと同じことはできません。)


正直なところ、返す結果セットが複数ある場合は、結果をテーブルに挿入する必要があります。その後、外側の SP はそれらのテーブルを使用できます。

外側の SP が一時テーブル ( CREATE TABLE #temp) を作成すると、内側の SP はそれが挿入されていることを確認できます。

同様に、永続的なテーブルを使用することもできます。SPID という列を作成し、挿入する値として @@spid を使用することをお勧めします。 (@@spid は、各セッションを一意に識別します。) ただし、テーブルに挿入した後は、忘れずにクリーンアップする必要があります。


これらのオプションはすべて、両方の SP を変更できることを前提としています。できない場合は、SQL Server 内でこれを実行できるかどうかわかりません。

于 2012-06-29T15:42:14.357 に答える
0

このために、SP2 内に一時テーブルを作成し、それを SP1 で使用できます。

于 2012-06-29T15:39:32.823 に答える