本質上沒區別。只是函數有如:只能傳回一個變數的限制。而預存程序可以傳回多個。而函數是可以嵌入在sql中使用的,可以在select中調用,而預存程序不行。執行的本質都一樣。
函數限制比較多,例如不能用臨時表,只能用表變量.還有一些函數都不可用等等.而存儲過程的限制相對就比較少
1. 一般來說,存儲過程實現的功能要複雜一點,函數的實現的功能針對性比較強。
2. 對於預存程序來說可以傳回參數,而函數只能傳回值或表物件。
3. 預存程序一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用,由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。
4. 當預存程序和函數被執行的時候,SQL Manager會到procedure cache中去取對應的查詢語句,如果在procedure cache裡沒有對應的查詢語句,SQL Manager就會對預存程序和函式進行編譯。
Procedure cache中保存的是執行計劃(execution plan) ,當編譯好之後就執行procedure cache中的execution plan,之後SQL SERVER會根據每個execution plan的實際情況來考慮是否要在cache中保存這個plan ,評判的標準一個是這個execution plan可能被使用的頻率;其次是產生這個plan的代價,也就是編譯的耗時。保存在cache中的plan在下次執行時就不用再編譯了。
預存程序和使用者自訂函數具體的區別
先看定義:
預存程序
預存程序可以使得對資料庫的管理、以及儲存過程
預存程序可以使得對資料庫的管理、以及顯示預存程序及其使用者資訊的工作容易得多。預存程序是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱儲存並作為一個單元處理。預存程序儲存在資料庫內,可由應用程式透過一個呼叫執行,而且允許使用者聲明變數、有條件執行以及其它強大的程式設計功能。
預存程序可包含程式流程、邏輯以及對資料庫的查詢。它們可以接受參數、輸出參數、傳回單一或多個結果集以及傳回值。
可以出於任何使用 SQL 語句的目的來使用預存程序,它具有以下優點:
可以在單一預存程序中執行一系列 SQL 語句。
可以從自己的儲存過程內引用其它儲存過程,這可以簡化一系列複雜語句。
預存程序在創建時即在伺服器上進行編譯,所以執行起來比單一 SQL 語句快。
使用者定義函數
函數是由一個或多個 Transact-SQL 語句組成的子程序,可用於封裝程式碼以便重新使用。 Microsoft? SQL Server? 2000 不會將使用者限制在定義為 Transact-SQL 語言一部分的內建函數上,而是允許使用者建立自己的使用者定義函數。
可使用 CREATE FUNCTION 語句建立、使用 ALTER FUNCTION 語句修改、以及使用 DROP FUNCTION 語句移除使用者定義函數。每個完全合法的使用者定義函數名稱 (database_name.owner_name.function_name) 必須唯一。
必須被授予 CREATE FUNCTION 權限才能建立、修改或移除使用者定義函數。不是擁有者的使用者在 Transact-SQL 語句中使用某個函數之前,必須先給此使用者授予該函數的適當權限。若要建立或變更在 CHECK 約束、DEFAULT 子句或計算列定義中引用使用者定義函數的表,也必須具有函數的 REFERENCES 權限。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),