分享:在存儲過程中使用另一個存儲過程返回的查詢結(jié)果集的方法_Mssql數(shù)據(jù)庫教程
推薦:查詢表中某字段有重復記錄個數(shù)的方法本篇文章介紹了,查詢表中某字段有重復記錄個數(shù)的方法。需要的朋友參考下
很多查詢類的存儲過程會返回一個表結(jié)構(gòu)的結(jié)果集,如果在其他存儲過程中需要用到這個結(jié)果集,為了避免編寫重復的sql腳本,可以直接使用前者的查詢結(jié)果。
如,存儲過程sp_GetBorrowRecord @BeginTime,@EndTime 可以查詢出某一時間范圍(開始時間@BeginTime,結(jié)束時間@EndTime)內(nèi)的所有借書記錄。這個存儲過程可以用于對借書記錄的查詢頁面。
現(xiàn)在需要實現(xiàn)另一個功能:將某時間段內(nèi)的借書記錄進行匯總分析。如按被借閱的書籍類型進行分組,并按各類書籍的借書總數(shù)進行排序。當然可以直接使用group by等方法直接重新進行查詢,但為了說明本例,暫且用另一種方法進行實現(xiàn),并且該方法也有其特有的優(yōu)勢(在文章最后會提到)。如下所示,建一個新的存儲過程:
--獲取借書記錄分析情況
create proc sp_GetBorrowAnalysis
@BeginTime datetime,
@EndTime datetime
as
--建一個表變量,結(jié)構(gòu)與sp_GetBorrowRecord查詢出的結(jié)果集相同
declare @Record table
(
BookID int, --書籍ID
BookName varchar(100), --書籍名稱
TypeID int, --書籍類別ID
CardID int --借書卡ID
CardName varchar(100) --借書人姓名
)
--獲取這段時間內(nèi)的借書記錄,并存入@Record表變量中
insert into @Record
exec sp_GetBorrowRecord @BeginTime,@EndTime
--接下來,就可以像使用一個普通的表一樣,對查出的數(shù)據(jù)(@Record中的數(shù)據(jù))進行所需要的各項處理
--。。。。。
go
使用這種方法的好處是可以避免編寫重復的代碼,并且利于維護。如果借書記錄的查詢條件發(fā)生變化,比如除了根據(jù)時間范圍進行篩選,還需要根據(jù)借書卡是否有效,或所借書籍是否仍然存在等條件進行篩選,那么只需要維護sp_GetBorrowRecord存儲過程即可,不需要將所有涉及到查詢借書記錄的存儲過程全部修改一遍。但這種方法在查詢的數(shù)據(jù)量較大的情況下比較影響性能,查詢速度較慢,在數(shù)據(jù)量較小的情況下這種差異并不明顯。
注:需要在sql server2005或更高版本中使用,低版本的sql server不支持該方法。
分享:安裝sqlserver2000時出現(xiàn)wowexec.exe無反應(yīng)的解決方法wowexec.exe是操作系統(tǒng)相關(guān)程序,用于支持16位進程,而wowexec 或者 wowexec.exe則是當硬盤上的文件碎片過多時,系統(tǒng)自動進行碎片整理
- sql 語句練習與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復數(shù)據(jù)的幾個方法
- sql刪除重復數(shù)據(jù)的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
猜你也喜歡看這些
- Mysql,phpmyadmin密碼忘了怎么辦
- KB967723補丁造成的MYSQL在Win2003上頻繁連接不上
- 淺談SQLite時間函數(shù)的使用說明與總結(jié)分析
- 利用Xtrabackup工具備份及恢復(MySQL DBA的必備工具)
- SQL字符型字段按數(shù)字型字段排序?qū)崿F(xiàn)方法
- 解析SQLite中的常見問題與總結(jié)詳解
- 查詢mysql中執(zhí)行效率低的sql語句的方法
- MySQL筆記之修改數(shù)據(jù)的解決方法
- mysql中text與varchar與char的區(qū)別
- CentOS6.3安裝MySQL5.6.10并修改MySQL的root用戶密碼
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-分享:在存儲過程中使用另一個存儲過程返回的查詢結(jié)果集的方法。