Dưới đây là các khác biệt chính giữa function và procedure:
| Function | Procedure |
|---|---|
| Function có kiểu trả về và trả về một giá trị. | Procedure không có kiểu trả về. Nhưng trả về giá trị qua tham số OUT. |
| Không thể dùng function với truy vấn thao tác dữ liệu (DML). Chỉ cho phép SELECT trong function. | Có thể dùng DML như insert, update, select với procedure. |
| Function không cho phép tham số output. | Procedure cho phép cả tham số input và output. |
| Không thể quản lý transaction bên trong function. | Có thể quản lý transaction bên trong procedure. |
| Không thể gọi stored procedure từ function. | Có thể gọi function từ stored procedure. |
| Có thể gọi function bằng câu lệnh SELECT. | Không thể gọi procedure bằng câu lệnh SELECT. |