IT貓撲網:您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁數據庫MSSQL → 解析 SQL Server 的存儲過程

解析 SQL Server 的存儲過程

時間:2015-06-28 00:00:00 來源:IT貓撲網 作者:網管聯盟 我要評論(2)

  微軟的SQL Server的存儲過程機制能夠通過對Transact-SQL語句進行組合而大大地簡化了數據庫開發(fā)過程。

  存儲過程功能的優(yōu)點

  為什么要使用存儲過程?以下是存儲過程技術的幾大主要優(yōu)點:

  預編譯執(zhí)行程序。SQL Server只需要對每一個存儲過程進行一次編譯,然后就可以重復使用執(zhí)行計劃。這個特點通過重復調用存儲程序極大地提高了程序的性能。

  縮短客戶端/服務器之間的信息傳輸量。如果你的工作環(huán)境帶寬有限,那么存儲過程技術肯定能夠滿足你,因為它能夠把需要傳輸的長的SQL查詢縮短成一行。

  有效重復使用代碼和編程。存儲過程可以為多個用戶所使用,也可以用于多個客戶程序。這樣可以減少程序開發(fā)周期的時間。

  增強安全性控制??梢栽试S用戶單獨執(zhí)行存儲過程,而不給于其訪問表格的權限。

  結構

  存儲過程的結構跟其他編程語言非常相似。存儲過程接受輸入參數形式的數據。這些輸入參數在執(zhí)行系列語句的時候被運用并生成結果。結果在通過使用記錄集、輸出參數和返回代碼返回。聽起來似乎很復雜,實際上存儲程序非常簡單。

  實例

  假設我們有如下名為Inventory的表格,表格里的數據需要實時更新,倉庫經理會不停地檢查倉庫里的貨存數量和可供發(fā)貨的貨存數量。以前,每一個地區(qū)的倉庫經理都會進行如下查詢:

以下是引用片段:

  SELECT Product, Quantity
  FROM Inventory
  WHERE Warehouse = 'FL'

  這樣的查詢使SQL Server性能效率非常低下。每次倉庫經理執(zhí)行該查詢,數據庫服務器都不得不重新對其進行編譯然后重新開始執(zhí)行。這樣的查詢還要求倉庫經理具備SQL方面的知識,并且擁有訪問表格數據的權限。

  我們可以通過使用存儲過程來簡化這個查詢過程。首先創(chuàng)建一個名為 sp_GetInventory的過程,能夠獲取一個已有倉庫的貨存水平。下面是創(chuàng)建該程序的SQL代碼:

以下是引用片段:

  CREATE PROCEDURE sp_GetInventory
  @location varchar(10)
  AS
  SELECT Product, Quantity
  FROM Inventory
  WHERE Warehouse = @location


  A地區(qū)的倉庫經理可以執(zhí)行下面的命令來獲得貨存水平:

以下是引用片段:
  EXECUTE sp_GetInventory 'FL'

  B地區(qū)的倉庫經理可以使用同樣的存儲過程來訪問該地區(qū)的貨存信息。

以下是引用片段:
  EXECUTE sp_GetInventory 'NY'

  當然,這只是一個很簡單的例子,但是可以看出來存儲過程的好處。倉庫經理不一定要懂得SQL或者存儲過程內在的工作原理。從性能的角度看的話,存儲過程無疑大大地提高了工作的效率。SQL Server只需創(chuàng)建執(zhí)行計劃一次,然后就可以重復使用存儲過程,只需要在每次執(zhí)行時輸入適當的參數就可以了。

關鍵詞標簽:SQL Server

相關閱讀

文章評論
發(fā)表評論

熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現有數據進行分區(qū)具體步驟 SqlServer2005對現有數據進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數據庫用戶、角色、架構的關系 MS-SQL2005服務器登錄名、角色、數據庫用戶、角色、架構的關系

相關下載

    人氣排行 配置和注冊ODBC數據源-odbc數據源配置教程 如何遠程備份(還原)SQL2000數據庫 SQL2000數據庫遠程導入(導出)數據 SQL2000和SQL2005數據庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法