存贮过程返回的结果是一个表,我在查询分析器中执行,如何让这个结果保存到临时表中去
存贮过程返回的结果是一个表,我在查询分析器中执行,如何让这个结果保存到临时表中去
---------
比如:在查询分析器中执行
exec 存贮过程名
后,将在下面显示结果,是一个表。
现在我想让这个表保存起来。如何实现呢?
注:我是指在查询分析器执行。(在客户端当然可以用ado记录集了。)
------解决方案--------------------create #临时表(……)
insert #临时表
exec 存储过程
------解决方案--------------------把這個存儲過程改為返回類型為表的 函數 fn_存贮过程名 ()
insert table1
select * from dbo.fn_存贮过程名 ()
------解决方案--------------------create table #aa()
insert into #aa exec (存贮过程名 )
------解决方案----------------------先建一个测试数据
create table base
(
编号 char(6),
姓名 varchar(10)
)
insert into base
select '1 ', '张三 ' union all
select '2 ', '王地 ' union all
select '3 ', '李我人 ' union all
select '4 ', '王二 ' union all
select '5 ', '金一人 ' union all
select '6 ', '刘三我 '
--看一下基础表
select * from base
--建存贮过程
create proc progtmp
as
select 编号,姓名 from base
--必须先建一个表的结构,来装存贮过程的数据才行
create table #
(
编号 char(6),
姓名 varchar(10)
)
insert into #
exec progtmp
select * from #
drop table #