2

我有两个存储过程sp1sp2

sp1返回结果

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

sp2返回结果

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

我有一个名为的表test,它有两列value1value2如何在列中插入sp1结果并在表中的列中插入结果?value1sp2value2test

我正在使用这个

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

它导致错误,但它适用于单个值,请单击以下链接

4

2 回答 2

8

The only way I can think of is the following:

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 回答