SQL Server:将两个存储过程结果插入一个表中

时间:2012-12-28 21:26:59

标签: sql sql-server

我有两个存储过程sp1sp2

sp1返回结果

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

sp2返回结果

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

我有一个名为test的表,其中包含两列value1value2,如何在sp1列和value1中插入sp2个结果}导致value2表中的test列?

我正在使用此

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

导致错误,但它正在为单个值工作,请点击以下链接

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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());

您无法使用过程,因为无法从过程中返回值。