校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 分享:在存儲過程中使用另一個存儲過程返回的查詢結果集的方法

分享:在存儲過程中使用另一個存儲過程返回的查詢結果集的方法

熱門標簽:承德地圖標注公司名需要花錢嗎 怎么給高德做地圖標注 慶陽地圖標注 北京400電話辦理多少錢 電銷外呼系統軟件功能 咸陽電腦外呼系統運營商 浙江穩定外呼系統供應商 美團地圖標注商戶認證注冊 榕城市地圖標注

  很多查詢類的存儲過程會返回一個表結構的結果集,如果在其他存儲過程中需要用到這個結果集,為了避免編寫重復的sql腳本,可以直接使用前者的查詢結果。

  如,存儲過程sp_GetBorrowRecord @BeginTime,@EndTime 可以查詢出某一時間范圍(開始時間@BeginTime,結束時間@EndTime)內的所有借書記錄。這個存儲過程可以用于對借書記錄的查詢頁面。

      現在需要實現另一個功能:將某時間段內的借書記錄進行匯總分析。如按被借閱的書籍類型進行分組,并按各類書籍的借書總數進行排序。當然可以直接使用group by等方法直接重新進行查詢,但為了說明本例,暫且用另一種方法進行實現,并且該方法也有其特有的優勢(在文章最后會提到)。如下所示,建一個新的存儲過程:

復制代碼 代碼如下:

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

    --獲取這段時間內的借書記錄,并存入@Record表變量中
    insert into @Record
    exec sp_GetBorrowRecord @BeginTime,@EndTime

    --接下來,就可以像使用一個普通的表一樣,對查出的數據(@Record中的數據)進行所需要的各項處理
    --。。。。。
go


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

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

標簽:呼和浩特 江蘇 新鄉 貴州 重慶 上海 拉薩 昭通

巨人網絡通訊聲明:本文標題《分享:在存儲過程中使用另一個存儲過程返回的查詢結果集的方法》,本文關鍵詞  分享,在,存儲,過程中,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《分享:在存儲過程中使用另一個存儲過程返回的查詢結果集的方法》相關的同類信息!
  • 本頁收集關于分享:在存儲過程中使用另一個存儲過程返回的查詢結果集的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 鲜城| 南漳县| 延川县| 内乡县| 玉山县| 合山市| 五莲县| 南开区| 洛浦县| 五河县| 富源县| 林州市| 娱乐| 仁寿县| 长岭县| 永仁县| 临潭县| 成安县| 通城县| 如东县| 常宁市| 前郭尔| 五台县| 沿河| 阳新县| 石门县| 石嘴山市| 泰来县| 云南省| 定襄县| 义马市| 阜城县| 诸城市| 育儿| 南丹县| 潜江市| 兴隆县| 湖北省| 卓资县| 安丘市| 舒城县|