全球专业中文经管百科,由121,994位网友共同编写而成,共计435,766个条目

存儲過程

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

存儲過程(Store Procedure)

目錄

什麼是存儲過程

  存儲過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理,是資料庫中的一個對象。

  存儲過程存儲在資料庫內,可由應用程式通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其它強大的編程功能。

存儲過程的類型

  1、系統存儲過程:以“sp_”為首碼標識,存儲在“master”資料庫中,提供對系統表的檢索和管理功能。

  2、擴展存儲過程:以“xp_”為首碼標識,通過執行外部DLL來實現功能。

  3、本地存儲過程:創建在用戶資料庫中。

  4、臨時存儲過程:主要用於用戶會話中臨時存儲的功能。

  5、遠程存儲過程:為早期功能。

存儲過程的優點

  1、與其他應用程式共用應用邏輯,確保一致的數據訪問和修改。存儲過程封裝了商務邏輯。若規則或策略有變化,則只需要修改伺服器上的存儲過程,所有的客戶端就可以直接使用。

  2、屏蔽資料庫模式的詳細資料。用戶不需要訪問底層的資料庫和資料庫內的對象。

  3、提供了安全性機制。用戶可以被賦予執行存儲過程的許可權,而不必在存儲過程引用的所有對象上都有許可權。

  4、改善性能。預編譯的 Transact-SQL 語句,可以根據條件決定執行哪一部分。

  5、減少網路通信量。客戶端用一條語句調用存儲過程,就可以完成可能需要大量語句才能完成的任務,這樣減少了客戶端伺服器之間的請求/回答包。

存儲過程的命名規範及命名方法

  方法一

  A、“表”單數形式命名

  語法:[proc]_[MainTableName]_([FieldName]_)[Action]

  -- 創建/刪除/更新/等操作採用單數表形式命名

  proc_OfferThread_Create

  proc_OfferThread_Update

  proc_OfferThread_Delete

  其他輔助操作:

  proc_OfferThread_Status_Update

  proc_OfferThread_PrevNext

  proc_OfferThread_Get (如果不用ByID指明則預設是ID)

  B、“表”複數形式命名

  語法:[proc]_[MainTableNames]_[Action(Condition)]

  -- 讀取列表或分頁集合採用複數表形式

  proc_OfferThreads_Get

  proc_OfferThreads_GetByName (如果不用By指明則預設是ID)

  proc_OfferThreads_Delete (預設批量按用戶編號刪除)

  proc_OfferThreads_DeleteByUserName (批量按用戶登錄名刪除)

  proc_OfferThreads_DeleteByName (批量按名稱刪除)

  proc_OfferThreads_GetThreadSet (讀取分頁)

  基本原則:

  註釋:假如存儲過程以sp_ 為首碼開始命名那麼會運行的稍微的緩慢,這是因為SQL Server將首先查找系統存儲過程,所以我們決不推薦使用sp_作為首碼。

  存儲過程命名語法:

  [proc] [MainTableName] By [FieldName(optional)] [Action]

  (1) 所有的存儲過程必須有首碼'proc'. 所有的系統存儲過程都有首碼"sp_", 推薦不使用這樣的首碼因為會稍微的減慢。

  (2) 表名就是存儲過程訪問的對象。

  (3) 可選欄位名就是條件子句。 例如:procClientByCoNameSelect, procClientByClientIDSelect

  (4) 最後的行為動詞就是存儲過程要執行的任務:

  如果存儲過程返回一條記錄那麼尾碼是:Select

  如果存儲過程插入數據那麼尾碼是:Insert

  如果存儲過程更新數據那麼尾碼是:Update

  如果存儲過程有插入和更新那麼尾碼是:Save

  如果存儲過程刪除數據那麼尾碼是:Delete

  如果存儲過程更新表中的數據 (ie. drop and create) 那麼尾碼是:Create

  如果存儲過程返回輸出參數或0,那麼尾碼是:Output

  從前的寫法:

  查詢:procGetRate 或 sp_GetRate

  添加:procEmailMergeAdd

  現在的寫法:

  查詢:procClientRateSelect

  添加:procEmailMerge insert

本條目對我有幫助3
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

鲈鱼,jane409,Yixi,苏青荇,刘维燎.

評論(共0條)

提示:評論內容為網友針對條目"存儲過程"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

下载APP

闽公网安备 35020302032707号