2017-01-27 30 views
4

複数のテーブル(現在はWebサービスによって消費されている)を返すストアドプロシージャがあります。その出力をSQL Serverデータベースに挿入する必要があります。SQL Server:ストアドプロシージャから複数のテーブル出力を別のテーブルに挿入する

私は

INSERT INTO #temp 
    EXEC ('myProcSQlhere') 

を経由して、既存の定義を知っている。しかし、このために、私は事前に、出力テーブルの定義を知っておく必要がある場合、私は、単一のテーブルを挿入することができます。

これは、テーブル定義を知ることになりますが、1つのテーブルにのみ入力できます。だから私はどのように複数のテーブルにデータを挿入するのですか?

答えて

3

ストアドプロシージャは、1つの値のみを返すことができます。ストアドプロシージャが実行する処理は、複数の選択を実行し、複数の結果セットを与えることです。これは、複数の結果セットを使用できるシステムでは機能しますが、SQL Serverには固執しています。

ストアドプロシージャが結果セットごとに独立したストアドプロシージャをまだコールしていないかどうかを確認し、そうであればコールします。または、ストアード・プロシージャーの定義を使用し、順次使用される各照会を呼び出します。

ストアドプロシージャを提供するシステムにアクセスできない場合は、CLR stored procedureとを実装して、異なるテーブルに結果を格納する必要があります。

+0

'これは、複数の結果セットを使用できるシステムでは動作しますが、SQLサーバーにはまっています。 – TheGameiswar

+0

私は現在vbから結果セットを調べます。結果セットにはいくつかのテーブルがあります。それは本当にそこからうまく動作します。問題は、私は今SQLでそれ以上のことをする必要があり、1の後にテーブルにアクセスする方法がわかりません。 –

+0

それはこの答えのポイントです.Sqlでは次のテーブルを取得することはできません。 –

関連する問題