1. 程式人生 > >儲存過程和儲存函式的詳細區別

儲存過程和儲存函式的詳細區別

儲存過程是使用者定義的一系列sql語句的集合,涉及特定表或其它物件的任務,使用者可以呼叫儲存過程,而函式通常是資料庫已定義的方法,它接收引數並返回某種型別的值並且不涉及特定使用者表。

    儲存過程和函式存在以下幾個區別:

    1)一般來說,儲存過程實現的功能要複雜一點,而函式的實現的功能針對性比較強。儲存過程,功能強大,可以執行包括修改表等一系列資料庫操作;使用者定義函式不能用於執行一組修改全域性資料庫狀態的操作。

    2)對於儲存過程來說可以返回引數,如記錄集,而函式只能返回值或者表物件。函式只能返回一個變數;而儲存過程可以返回多個。儲存過程的引數可以有IN,OUT,INOUT三種類型,而函式只能有IN類~~儲存過程宣告時不需要返回型別,而函式宣告時需要描述返回型別,且函式體中必須包含一個有效的RETURN語句。

    3)儲存過程,可以使用非確定函式,不允許在使用者定義函式主體中內建非確定函式。

    4)儲存過程一般是作為一個獨立的部分來執行( CALL 語句執行),而函式可以作為查詢語句的一個部分來呼叫(SELECT呼叫)。 SQL語句中不可用儲存過程,而可以使用函式