2

2 つのストアド プロシージャがsp1あり、sp2

sp1結果を返す

value1 
------
   1    
   2
   3
   4
   5

sp2結果を返す

value2
------
   4    
   5
   6
   7
   8

test私は2つの列を持つvalue1テーブルを持っています.結果を列に挿入し、結果をテーブルの列value2に挿入するにはどうすればよいですか?sp1value1sp2value2test

私はこれを使用しています

  insert into test 
     exec [sp1], exec [sp2]

エラーが発生していますが、単一の値で機能しています。次のリンクをクリックしてください

4

2 に答える 2

8

私が考えることができる唯一の方法は次のとおりです。

declare @t1 as table (id int identity(1,1), val int);
declare @t2 as table (id int identity(1,1), val int);

insert into @t1 (val)
    exec sp1;

insert into @t2 (val)
    exec sp2;

insert into test
    select t1.val, t2.val
    from @t1 t1 full outer join
         @t2 t2
         on t1.id = t2.id
于 2012-12-28T21:40:28.797 に答える
0

これらが関数である場合は、次の疑似コードを実行できます。

first_val = select sp1();  
second_val = select sp2();


insert into test values (first_val,second_val);

これうまくいくかもしれません:

insert into test values (select sp1(),select sp2());

プロシージャから値を返す方法がないため、プロシージャを使用できません。

于 2012-12-28T21:35:01.530 に答える