SQL SERVER 中儲存過程和函式的區別

2021-06-10 02:35:25 字數 1326 閱讀 2943

儲存過程 

函式儲存過程定義中的

引數可以為任意資料型別

,包括使用者定義的型別,同時過程還

可以擁有輸出引數

,用於返回任何資料型別的結果。

儲存過程只能直接

返回整型值

,通常用於顯示過程執行的狀態。

在儲存過程定義中可以

包含任何

t-sql 語句,

可以向使用者返回查詢的結果集

,允許遞迴

(最大32 

層),可以建立

/引用臨時表

。儲存過程的引數有預設值時,只要在呼叫儲存過程時

不指定該引數的值

或將default 

關鍵字指定為該引數的值,即可使用預設值。

儲存過程

不能用於表示式

、計算列、

default 

約束和check

約束中。

系統內建的儲存過程

有以下特點:其

名稱以sp_ 開頭,

儲存在master 

資料庫中

。並且符合以上條件的使用者定義儲存過程可以在任何資料庫下,不需要提供四部分名,即可被呼叫。

函式定義中的

引數不能是

timestamp

、cursor

、table

和使用者定義的資料型別

,且沒有輸出引數

。函式可以

直接返回除

lob、

cursor

、table

、timestamp

外任何資料型別的值

。在函式定義中

不能有修改函式外物件的

t-sql 語句,

不能向使用者返回任何結果集

,不允許遞迴

,不能建立

/引用臨時表

。函式的引數有預設值時,在呼叫函式時必須將

default 

關鍵字指定為該引數的值,才可以使用預設值。

函式可以用於表示式、計算列、

default 

約束和check 

約束中。

系統內建的函式

有以下特點:其

名稱以fn_ 

開頭,名稱都是小寫字母,

儲存在master 

資料庫中,其所有者為

system_function_schema

。在呼叫系統內建的錶值函式時,需要加

:: 字首。需要啟用

allow updates

伺服器選項

,才能將使用者定義函式的所有者定義為

system_function_schema。

SQL Server中儲存過程筆記

one.基本語法 create procedure 儲存過程名稱 可簡寫用proc 引數名1 資料型別,引數名2 資料型別,引數名n 資料型別 output output表示該引數用於輸出 as begin 執行語句或查詢語句等等 endtwo.無引數的儲存過程 create proc proc m...

SQL server中儲存過程基礎教程

建立資料庫庫名可自取 建立 books表 主鍵自增 新增資料 自行新增 1.建立儲存過程 go 建立不帶參的儲存過程 create proc cp select books asselect from books2.呼叫 呼叫不帶參的儲存過程 exec cp select books1.建立儲存過程...

Oracle中儲存過程

1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...