輕鬆掌握SQL Server預存程序的命名標準

來源:互聯網
上載者:User

在本文中,此樣本標準藍圖的預存程序命名方法只適用於SQL內部,假如你正在建立一個新的預存程序,或是發現一個沒有按照這個標準構造的預存程序,即可以參考使用這個標準。

 

注釋:假如預存程序以sp_ 為首碼開始命名那麼會啟動並執行稍微的緩慢,這是因為SQL Server將首先尋找系統預存程序,所以我們決不推薦使用sp_作為首碼。

預存程序的命名有這個的文法:

 


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

[ 1 ] [ 2 ] [ 3 ]  [ 4 ]

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

 

(2) 表名就是預存程序訪問的對象。

 

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

 


procClientByCoNameSelect, procClientByClientIDSelect

 

(4) 最後的行為動詞就是預存程序要執行的任務。

 

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

 

如果預存程序插入資料那麼尾碼是:Insert

 

如果預存程序更新資料那麼尾碼是:Update

 

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

 

如果預存程序刪除資料那麼尾碼是:Delete

 

如果預存程序更新表中的資料 (ie. drop and create) 那麼尾碼是:Create

 

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

例子:

一個僅僅返回一個輸出參數的預存程序:

 


ALTER PROCEDURE procClientRateOutput 
@pstrClientID VARCHAR(6) = 'CABLE',
@pstrCategoryID VARCHAR(6) = '<All>',
@pstrEmpID VARCHAR(6)='AC',
@pdteDate datetime = '1996/1/1',
@curRate MONEY OUTPUT

AS

-- Description: Get the $Rate for this client and this employee
-- and this category from Table ClientRate

SET @curRate = (
SELECT TOP 1 Rate
FROM ClientRate
WHERE ClientID=@pstrClientID
AND EmpID=@pstrEmpID
AND CategoryID=@pstrCategoryID
AND DateEnd > @pdteDate
ORDER BY DateEnd
)

IF @curRate IS NULL

SET @curRate =
(
SELECT TOP 1 Rate
FROM ClientRate
WHERE ClientID=@pstrClientID
AND EmpID=@pstrEmpID
AND CategoryID='<ALL>'
AND DateEnd > @pdteDate
ORDER BY DateEnd
)

RETURN

從前的寫法:

 


  Select 'procGetRate' or 'sp_GetRate' 
Insert 'procEmailMergeAdd'

目前的寫法:

 


  'procClientRateSelect' 
'procEmailMergeInsert'
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.