我有两个存储过程,语句很复杂与庞大,现在有新地需求,想取两个存储过程的结果集,不知道如何处理?1、A存储过程有:A列,B列,C列,D列,E列,F列,G列,H列,I列,J列
   B存储过程有:A列,B列,E列,F列,G列,H列,I列,J列,K列,L列2、想通过SQL查询:A存储过程的(A列+B列+G列+H列)与B存储过程的(A列+B列+G列+H列)的所有数据,将其合成一个新的结果集.不知道这个有没有办法处理?

解决方案 »

  1.   

    给你举个例子Create proc P1
    as
    select 'a' as ID,'b' as ID2
    go
    Create proc P2
    as
    select 'c' as ID,'d' as ID2
    goCreate table #(ID nvarchar(2),ID2 nvarchar(2))
    insert # exec P1
    insert # exec P2
    go
    select * from #--这样获取后再处理
    /*
    ID ID2
    a b
    c d
    */
      

  2.   

    实现你得知道两个存储过程获取的字段个数及字段数据类型。
    创建两个表变量或临时表作为两个存储过程结果集的获取对象。create table #t1(...)
    create table #t2(...)insert into #t1 exec proc1 ...
    insert into #t2 exec proc2 ...然后可以根据这两个对象来做你下一步的处理。
      

  3.   

    create table #t1(col1,col2,col3......)
    create table #t2(col1,col2,col3......)
    insert into #t1 exec proc1
    insert into #t2 exec proc2
    根据你的需求对两个临时表进行连接查询获取数据.