存储过程A返回的是记录集。在存储过程B中调用A,想把A返回的记录集保存到一个临时记录集中。如何写?
A:存储过程......
 EXECUTE(@strSql)
ENDB:存储过程
execut msp_A @p1, @p2 ..???--这里应该如何写把msp_A返回的记录保存到##a的临时表中

解决方案 »

  1.   

    create table ##a ....
    insert into ##a execut msp_A @p1, @p2 ..
      

  2.   


    --第一种方法:直接用存储过程返回的数据集生成临时表
    select * into #t
    from openrowset('sqloledb','192.168.0.1';'用户名';'密码','exec 数据库名.dbo.存储过程名')--select * into #t
    --from openrowset('sqloledb','192.168.0.1';'用户名';'密码','exec 数据库名..存储过程名')--select * into #t
    --from openrowset('sqloledb','localhost';'用户名';'密码','exec 数据库名.dbo.存储过程名')--select * into #t
    --from openrowset('sqloledb','localhost';'用户名';'密码','exec 数据库名..存储过程名')select * from #tdrop table #t
    -第二种方法:先创建临时表,然后再追加create table #t(...)insert into #t exec 存储过程名