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可以方便的運作各種動作使用 不用再多編寫好幾次類似的陳述式段落