SQL Server检索存储过程的结果集
Posted juning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server检索存储过程的结果集相关的知识,希望对你有一定的参考价值。
目的:检索过滤执行存储过程的结果集
如下介绍两个常用的方法,但是都需要申明表结构;不知道是否有更简便的方法,如有更好的方法,请不吝赐教。
以系统存储过程sp_who2为例:
方法1:使用临时表
1 --1. 创建临时表 2 CREATE TABLE #tmp( 3 SPID int, 4 Status nvarchar(50), 5 Login nvarchar(50), 6 HostName nvarchar(50), 7 BlkBy nvarchar(50), 8 DBName nvarchar(50), 9 Command nvarchar(50), 10 CPUTime nvarchar(50), 11 DiskIO nvarchar(50), 12 LastBatch nvarchar(50), 13 ProgramName nvarchar(50), 14 SPID2 int, 15 REQUESTID int 16 ) 17 18 --2. 执行存储过程并将存储过程的返回结果集插入临时表 19 insert into #tmp exec sp_who2 20 21 --3. 检索、查询 22 select * from #tmp where Status = ‘sleeping‘ 23 24 --4. 清除临时表 25 DROP TABLE #tmp
方法2:使用表变量
1 --1. 申明表变量 2 declare @tempTable Table(SPID int,Status nvarchar(50), Login nvarchar(50), HostName nvarchar(50), BlkBy nvarchar(50), DBName nvarchar(50), Command nvarchar(50), 3 CPUTime nvarchar(50), DiskIO nvarchar(50), LastBatch nvarchar(50), ProgramName nvarchar(50), SPID2 int, REQUESTID int) 4 5 --2. 执行存储过程并将存储过程的返回结果集插入表中 6 insert into @tempTable exec sp_who2 7 8 --3. 检索、查询 9 select * from @tempTable where Status = ‘sleeping‘
以上是关于SQL Server检索存储过程的结果集的主要内容,如果未能解决你的问题,请参考以下文章
SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?
SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?