欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Sql随手笔记 » 正文

热门阅读

将存储过程返回结果插入到表中示例

创建时间:2012年07月04日 09:16  阅读次数:(14703)
分享到:
我们经常在一个存储过程中返回一个经过一系列复杂计算后的结果集。因为这个结果集不是单靠查询语句就能搞定,所以不用简单的使用视图,只能靠存储过程了。但这样就会存在一个问题,如果我在得到这个结果集后想再对这个结果集中的数据进行过滤,就不太好办了。但如果我们能先将这个结果集插入到一个临时表中,然后使用简单的where条件对这个临时表进行过滤,就变的相当的简单了。

下面我们就做一个将存储过程的结果集插入到表中做一个示例
sqlserver中新增数据的方法可以参考以下:Sql Server中插入和添加数据的方法总结

先创建一个简单的存储过程,返回一个结果集
Create procedure usp_test
as
begin
set nocount on

select 'a' as A,2 as B,3 as C
union all
select 'c',2,3
union all
select 'd',2,3
union all
select 'e',2,3

set nocount off

end

这个存储过程返回了一个具有四行数据的结果集,我们可以使用execute usp_test命令来查看结果集。

然后我们创建一个临时表,并将该结果集插入到这个临时表中
create table #temp_test
(
A varchar(50),
B int,
C int
)

insert into #temp_test(A,B,C)
execute usp_test

这样,临时表#temp_test就拥有存储过程usp_test的结果集了,如果我们要对结果集过滤,就只要使用简单的where条件了,比如,我们要查询结果集中A列等于'a'的结果,sql命令如下:
select * from #temp_test where A='a'
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 62+47=? 的结果(结果是:109)
结  果: