淺談SQL中預存程序和自訂函數的區

來源:互聯網
上載者:User

預存程序:

預存程序可以使得對資料庫的管理、以及顯示關於資料庫及其使用者資訊的工作容易得多。預存程序是 SQL 陳述式和可選控制流程語句的先行編譯集合,以一個名稱儲存並作為一個單元處理。預存程序儲存在資料庫內,可由應用程式通過一個調用執行,而且允許使用者聲明變數、有條件執行以及其它強大的編程功能。
預存程序可包含程式流、邏輯以及對資料庫的查詢。它們可以接受參數、輸出參數、返回單個或多個結果集以及傳回值。
可以出於任何使用 SQL 陳述式的目的來使用預存程序,它具有以下優點:
1、可以在單個預存程序中執行一系列 SQL 陳述式。
2、可以從自己的預存程序內引用其它預存程序,這可以簡化一系列複雜語句。
3、預存程序在建立時即在伺服器上進行編譯,所以執行起來比單個 SQL 陳述式快。

使用者定義函數:
Microsoft SQL Server 2000 允許建立使用者定義函數。與任何函數一樣,使用者定義函數是可傳回值的常式。根據所傳回值的類型,每個使用者定義函數可分成以下三個類別:
1、返回可更新資料表的函數
如果使用者定義函數包含單個 Select 語句且該語句可更新,則該函數返回的表格格式結果也可以更新。
2、返回不可更新資料表的函數
如果使用者定義函數包含不止一個 Select 語句,或包含一個不可更新的 Select 語句,則該函數返回的表格格式結果也不可更新。
3、返回標量值的函數
使用者定義函數可以返回標量值。

預存程序
功能強大,限制少
不能直接引用傳回值
用select語句返回記錄集

自訂函數
諸多限制,有許多語句不能使用,許多功能不能實現
可以直接引用傳回值
用表變數返回記錄集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.