自定義函式與儲存過程的區別

2022-08-21 09:06:18 字數 1510 閱讀 8557

儲存過程和自定義函式的區別

difference between procedure and user defined function

首先來看一下儲存過程和自定義函式的概念

一、什麼是儲存過程?

儲存過程可以使得對資料庫的管理、以及顯示關於資料庫及其使用者資訊的工作容易得

多。儲存過程是

sql

語句和可選控制流語句的預編譯集合,以乙個名稱儲存並作為乙個單

元處理。

儲存過程儲存在資料庫內,

可由應用程式通過乙個呼叫執行,

而且允許使用者宣告變

量、有條件執行以及其它強大的程式設計功能。

儲存過程可包含程式流、邏輯以及對資料庫的查詢。它們可以接受引數、輸出引數、

返回單個或多個結果集以及返回值。

可以出於任何使用

sql

語句的目的來使用儲存過程,它具有以下優點:

1、可以在單個儲存過程中執行一系列

sql

語句。

2、可以從自己的儲存過程內引用其它儲存過程,這可以簡化一系列複雜語句。

3、儲存過程在建立時即在伺服器上進行編譯,所以執行起來比單個

sql

語句快。

二、什麼是使用者定義函式?

microsoft sql server

2000

允許建立使用者定義函式。與任何函式一樣,使用者定義函

數是可返回值的例程。根據所返回值的型別,每個使用者定義函式可分成以下三個類別:

1、返回可更新資料表的函式

如果使用者定義函式包含單個

select

語句且該語句可更新,則該函式返回的**格式

結果也可以更新。

2、返回不可更新資料表的函式

如果使用者定義函式包含不止乙個

select

語句,或包含乙個不可更新的

select

語句,則該函式返回的**格式結果也不可更新。

3、返回標量值的函式

使用者定義函式可以返回標量值。

儲存過程(使用者定義的儲存過程)和自定義函式(使用者定義的函式)的區別: 1

.儲存過程,

功能強大,

可以執行包括修改表等一系列資料庫操作,

也可以建立為

sql

server

啟動時自動執行的儲存過程。

自定義函式,使用者定義函式不能用於執行一組修改全域性資料庫狀態的操作。

2.儲存過程,可以使用非確定函式。

自定義函式,不允許在使用者定義函式主體中內建非確定函式。

3.儲存過程,可返回記錄集。

自定義函式,可以返回表變數。

4.儲存過程,其返回值不能被直接引用。

自定義函式,其返回值可以被直接引用。

5.儲存過程,用

execute

語句執行。

自定義函式,在查詢語句中呼叫。

儲存過程和自定義函式的區別

儲存過程和自定義函式的區別 difference between procedure and user defined function 首先來看一下儲存過程和自定義函式的概念 一 什麼是儲存過程?儲存過程可以使得對資料庫的管理 以及顯示關於資料庫及其使用者資訊的工作容易得多。儲存過程是 sql 語...

自定義函式和儲存過程的區別

自定義函式和儲存過程的區別 1 一般來說,儲存過程實現的功能要複雜一點,而函式的實現的功能針對性比較強。儲存過程,功能強大,可以執行包括修改表等一系列資料庫操作 使用者定義函式不能用於執行一組修改全域性資料庫狀態的操作。2 對於儲存過程來說可以返回引數,如記錄集,而函式只能返回值或者表物件。函式只能...

SQL中儲存過程與自定義函式的區別

儲存過程 stored procedure 是在大型資料庫系統中,一組為了完成特定功能的sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。儲存過程是資料庫中的乙個重要物件,任何乙個設計良好的資料庫應用程式...