很多查詢類(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ò)程:
    --獲取這段時(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
注:需要在sql server2005或更高版本中使用,低版本的sql server不支持該方法。
新聞熱點(diǎn)
疑難解答
圖片精選