首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 預存程序命名規範標準

     編輯:關於SqlServer

命名原則

  • **禁止使用 sp_ 前綴**:系統預存程序皆以 sp_ 開頭,使用者程序若同樣命名,SQL Server 會優先在 master 資料庫搜尋,導致額外查找開銷,效能略微下降。
  • **統一前綴**:建議使用 usp_ (User Stored Procedure) 或 proc_ 作為使用者預存程序前綴,明確區分系統與使用者物件。

命名語法結構

[前綴] [主資料表名] By [欄位名(可選)] [動作]
[ usp_ ] [  TableName  ]    [  ByColumn  ]      [ Action ]

四大組成元素說明

代碼元素說明範例
1前綴統一 usp_,不可用 sp_usp_
2主資料表名核心操作的實體表名稱,PascalCaseCustomer, OrderDetail
3By + 欄位名輸入參數關鍵欄位 (非主鍵時),可省略ByEmail, ByStatus
4動作業務動作動詞,標準化動詞表見下Select, Insert, Update, Delete

標準動作動詞對照表

動作動詞適用場景
查詢單筆/清單Select, Get, Listusp_CustomerSelect, usp_OrderListByStatus
新增Insert, Create, Addusp_ProductInsert
修改Update, Modify, Editusp_OrderUpdateByID
刪除Delete, Remove, Purgeusp_LogDeleteByDate
批次/複合Process, Batch, Syncusp_OrderProcess
統計/彙總Stats, Summary, Reportusp_SalesStatsByMonth

完整命名範例

功能描述預存程序名稱
依主鍵查詢客戶usp_CustomerSelect
依 Email 查詢客戶usp_CustomerSelectByEmail
新增訂單usp_OrderInsert
依狀態更新訂單usp_OrderUpdateByStatus
依日期刪除舊日誌usp_LogDeleteByDate
月銷售統計報表usp_SalesStatsByMonth

額外規範建議

  1. 結構描述前綴:多結構描述環境建議加入 Schema 前綴,如 dbo.usp_Sales_OrderInsert、rpt.usp_SalesStatsByMonth。
  2. 參數命名:@ParamName 使用 PascalCase,輸出參數加 Out 後綴 (如 @TotalCountOut)。
  3. 避免保留字:勿使用 Order, Group, Key 等做為程序名稱一部分,除非加上方括號。
  4. 版本管理:重大變更建議新增版本後綴 _v2,舊版標記棄用,避免直接覆蓋影響相依程式。
  5. 文件化:使用擴充屬性 (sp_addextendedproperty) 記錄用途、參數、範例、作者、修改歷程。

檢核清單 (Code Review 用)

  • [ ] 前綴為 usp_ (非 sp_)?
  • [ ] 主資料表名稱正確且 PascalCase?
  • [ ] By 欄位名是否必要?
  • [ ] 動作動詞符合標準表?
  • [ ] 無保留字衝突?
  • [ ] 已加入擴充屬性文件?
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved