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'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM