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里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据?

SQL Server存储过程同时返回分页结果集和总数

如果存储过程在 SQL Server 2005 上的选择之前进行更新,则没有结果集

sqlserver 存储过程 返回结果集的 例子