存儲過程與函數的區別(一)

存儲過程(Stored Procedure)是一組爲了完成特定功能的SQL語句集,經編譯後存儲在數據庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。總的來說,存儲過程具有以下一些優點:

◆存儲過程允許標準組件式編程

◆存儲過程能夠實現較快的執行速度

◆存儲過程能夠減少網絡流量

◆存儲過程可被作爲一種安全機制來充分利用

基本語法如下:
完整的語法規則如下:

CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ ...n ]
2)什麼時候需要用存儲過程
  如果服務器定義了存儲過程,應當根據需要決定是否要用存儲過程。存儲過程通常是一些經常要執行的任務,這些任務往往是針對大量的記錄而進行的。在服務器上執行存儲過程,可以改善應用程序的性能。這是因爲:
.服務器往往具有強大的計算能力和速度。
.避免把大量的數據下載到客戶端,減少網絡上的傳輸量。
  例如,假設一個應用程序需要計算一個數據,這個數據需要涉及到許多記錄。如果不使用存儲過程的話,把這些數據下載到客戶端,導致網絡上的流量劇增。
  不僅如此,客戶端可能是一臺老掉牙的計算機,它的運算速度很慢。而改用存儲過程後,服務器會很快地把數據計算出來,並且只需傳遞一個數據給客戶端,其效率之高是非常明顯的
3)存儲過程的參數
  要執行服務器上的存儲過程,往往要傳遞一些參數。這些參數分爲四種類型:
  第一種稱爲輸入參數,由客戶程序向存儲過程傳遞值。
  第二種稱爲輸出參數,由存儲過程向客戶程序返回結果。
  第三種稱爲輸入/輸出參數,既可以由客戶程序向存儲過程傳遞值,也可以由存儲過程向客戶程序返回結果。
  第四種稱爲狀態參數,由存儲過程向客戶程序返回錯誤信息。
函數:
函數是子程序的另一種形式,也是編制程序時定義的一個語句序列.與過程不同的是函數不以實現某種操作爲目的,而僅是爲了獲得一個計算結果值.這個結果值最終是通過函數名返回給調用者的,因此函數名具有值的類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章