預存程序和函數的差異要有:1、預存程序是SQL語句和可選控制流語句的預編譯集合,而函數是由一個或多個SQL 語句組成的子程序;2、預存程序可以在單一預存程序中執行一系列SQL語句,而自訂函數有諸多限制;3、執行方式不同。
預存程序與函數差異
#一、意義不同
##1、預存程序:預存程序是SQL 語句和可選控制流語句的預編譯集合,以一個名稱儲存並作為一個單元處理。 2、函數:是由一個或多個 SQL 語句組成的子程序,可用來封裝程式碼以便重新使用。函數限制比較多,如不能用臨時表,只能用表變數等二、使用條件不同1、預存程序:可以在單一預存程序中執行一系列SQL 語句。而且可以從自己的預存程序內引用其它預存程序,這可以簡化一系列複雜語句。 2、函數:自訂函數諸多限制,有許多語句不能使用,許多功能不能實現。函數可以直接引用回傳值,用表變數傳回記錄集。但是,使用者定義函數不能用來執行一組修改全域資料庫狀態的操作。 三、執行方式不同1、預存程序:預存程序可以傳回參數,如記錄集,函數只能傳回值或表格物件。預存程序的參數有in,out,inout三種,在預存程序聲明時不需要傳回型別。 2、函數:函數參數只有in,而函數需要描述回傳類型,函數中必須包含一個有效的return語句。以上是預存程序和函數有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!