我执行一个存储过程,返回一个查询结果现在我想把这个结果放入临时表或者表变量应该如何做啊?

解决方案 »

  1.   


    create table #t()  -- 你存储过程返回的 表结构insert into #t 
    exec pr_xxxxxxx  --执行你的存储过程 
      

  2.   

    最好是select  into 这种格式啦
    不用定义字段
      

  3.   


    貌似没有你的存储过程可以 用 select 执行?如果非的用select 执行,只能在你的存储过程内部 去生辰临时表了
      

  4.   

    --首先创建一个连接创建链接服务器 
    exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
    --查询 
    select * into #tb
    FROM openquery(ITSV , 'exec dbname.dbo.proc_name') 
      

  5.   

    --结果放入一个全局变量中
    select * into @@temp from 你的结果集
      

  6.   

    --如何将动态exec执行结果放入变量中?--------------------------------------------------------------------------------
    --例1
    declare @num int, @sqls nvarchar(4000)
    set @sqls='select @a=count(*) from a1 'exec sp_executesql @sqls,N'@a int output',@num outputselect @num
    ------------------------------------------------------------------------例2
    DECLARE @min VARCHAR(20)
    DECLARE @oldDate VARCHAR(20)
    DECLARE @sqls nvarchar(4000)set @min='name'
    set @sqls='select @a='+@min+' from dbo.fbase'EXEC sp_executesql @sqls,N'@a varchar(20) output',@oldDate output
    select @oldDate  
    --------------------------------------------------------------------------------
      

  7.   


    例如:tb表
    a           b
    ----------- --------------------
    1           北京;上海;
    2           广东;福建;广西;create proc 存储过程名
    as
    begin
    select * from tb
    endgocreate table #t(a int ,b varchar(20))
    insert into #t
    exec 存储过程名
    select * from #t
    /*
    a           b
    ----------- --------------------
    1           北京;上海;
    2           广东;福建;广西;
    */
    drop table #t--或者
    SELECT *  INTO MyTable 
    FROM OPENROWSET('SQLSERVER', 'server=.;trusted_connection=yes','exec 存储过程名')