mssql sqlserver 如何将存储过程返回的结果集保存并二次利用呢?


摘要:
下文讲述将sqlserver中存储过程返回的结果集放入临时表的方法分享,如下所示;
实验环境:sql server 2008 R2

例:

    
--1.存储过程返回一个结果集
 
go
create proc pr_testA 

as
begin
  select 1 as keyId,'sqlserver' as info 
  union all
  select 2,'maomao365.com'
end
go



---定义一个表变量接收存储过程返回结果集
---表变量的数据类型需同存储过程一致
---否则会报 "列名或所提供值的数目与表定义不匹配。"

declare  @t table(keyId int,info varchar(100))

insert into @t
 exec pr_testA
  select * from @t as t 
 
go

drop proc pr_testA

go 


注意事项:
存储过程返回两个结果集或三个结果集,我们需保证几个结果集返回的数据类型都一致
因为表变量会将这三个结果集全部都插入