Stored Procedure和 UDF (User-Defined Function)的不同
Stored Procedure(預存程序)和 UDF (User-Defined Function 自訂函數)的不同
(翻譯自此處)
●Procedure能回傳0或n個值 ; function強制回傳一個值
●Procedure的參數可以指定INPUT/OUTPUT ; function的參數只能當INPUT(無法指定OUTPUT)
●Procedure可以使用各種DML statements ; function只允許使用SELECT(不能更改資料庫的狀態以及內容)
●Function可以被Procedure呼叫使用 ; Procedure不能被Function呼叫使用
●以try-catch區塊作例外處理可用於Procedure ; 不可用於Function
●Procedure可以作transaction(交易)管理 ; Function不行
●Procedure不能包在SELECT執行 ; Function可以嵌在SELECT內使用
●UDF(User-Defined Function)可以用在 WHERE/HAVING/SELECT 等SQL陳述式內
Stored procedures則不行
簡而言之, stored procedure一般用在單純的「執行動作」
而function則多用於各種陳述式內使用(例如system預設的Avg()函數即是如此使用)
function的使用率可能較高, 會不自覺的用在各種地方
stored procedure則是讓programmer可以方便的運作各種動作使用
不用再多編寫好幾次類似的陳述式段落
留言