国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

分享:在存儲(chǔ)過(guò)程中使用另一個(gè)存儲(chǔ)過(guò)程返回的查詢結(jié)果集的方法

2024-08-31 00:47:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  很多查詢類(lèi)的存儲(chǔ)過(guò)程會(huì)返回一個(gè)表結(jié)構(gòu)的結(jié)果集,如果在其他存儲(chǔ)過(guò)程中需要用到這個(gè)結(jié)果集,為了避免編寫(xiě)重復(fù)的sql腳本,可以直接使用前者的查詢結(jié)果。

  如,存儲(chǔ)過(guò)程sp_GetBorrowRecord @BeginTime,@EndTime 可以查詢出某一時(shí)間范圍(開(kāi)始時(shí)間@BeginTime,結(jié)束時(shí)間@EndTime)內(nèi)的所有借書(shū)記錄。這個(gè)存儲(chǔ)過(guò)程可以用于對(duì)借書(shū)記錄的查詢頁(yè)面。

現(xiàn)在需要實(shí)現(xiàn)另一個(gè)功能:將某時(shí)間段內(nèi)的借書(shū)記錄進(jìn)行匯總分析。如按被借閱的書(shū)籍類(lèi)型進(jìn)行分組,并按各類(lèi)書(shū)籍的借書(shū)總數(shù)進(jìn)行排序。當(dāng)然可以直接使用group by等方法直接重新進(jìn)行查詢,但為了說(shuō)明本例,暫且用另一種方法進(jìn)行實(shí)現(xiàn),并且該方法也有其特有的優(yōu)勢(shì)(在文章最后會(huì)提到)。如下所示,建一個(gè)新的存儲(chǔ)過(guò)程:

復(fù)制代碼 代碼如下:www.CuoXIn.com

--獲取借書(shū)記錄分析情況
create proc sp_GetBorrowAnalysis
@BeginTime datetime,
@EndTime datetime
as
--建一個(gè)表變量,結(jié)構(gòu)與sp_GetBorrowRecord查詢出的結(jié)果集相同
declare @Record table
(
BookID int, --書(shū)籍ID
BookName varchar(100), --書(shū)籍名稱(chēng)
TypeID int, --書(shū)籍類(lèi)別ID
CardID int --借書(shū)卡ID
CardName varchar(100) --借書(shū)人姓名
)

--獲取這段時(shí)間內(nèi)的借書(shū)記錄,并存入@Record表變量中
insert into @Record
exec sp_GetBorrowRecord @BeginTime,@EndTime

--接下來(lái),就可以像使用一個(gè)普通的表一樣,對(duì)查出的數(shù)據(jù)(@Record中的數(shù)據(jù))進(jìn)行所需要的各項(xiàng)處理
--。。。。。
go


  使用這種方法的好處是可以避免編寫(xiě)重復(fù)的代碼,并且利于維護(hù)。如果借書(shū)記錄的查詢條件發(fā)生變化,比如除了根據(jù)時(shí)間范圍進(jìn)行篩選,還需要根據(jù)借書(shū)卡是否有效,或所借書(shū)籍是否仍然存在等條件進(jìn)行篩選,那么只需要維護(hù)sp_GetBorrowRecord存儲(chǔ)過(guò)程即可,不需要將所有涉及到查詢借書(shū)記錄的存儲(chǔ)過(guò)程全部修改一遍。但這種方法在查詢的數(shù)據(jù)量較大的情況下比較影響性能,查詢速度較慢,在數(shù)據(jù)量較小的情況下這種差異并不明顯。

注:需要在sql server2005或更高版本中使用,低版本的sql server不支持該方法。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴青县| 察哈| 长治市| 花莲县| 瑞金市| 合江县| 尼勒克县| 盱眙县| 高雄市| 东平县| 嘉鱼县| 富平县| 高密市| 兴山县| 建湖县| 保定市| 榆树市| 霸州市| 高阳县| 湟中县| 天峻县| 蓬溪县| 民勤县| 平阳县| 泰和县| 茶陵县| 富平县| 清新县| 新兴县| 珲春市| 博客| 扶绥县| 南雄市| 山东| 浦北县| 莱西市| 凤凰县| 元氏县| 麟游县| 湟中县| 东方市|