Difference Between Similar Terms and Objects

Difference Between UDF and stored procedure in SQL

UDF vs stored procedure in SQL

The SQL environment comes with various components working with it for successful delivery of the tasks at hand. There is the user defined function and the stored procedure, which are common within the SQL environment. It is the differences between these two which are reviewed below.


The first difference that is seen with the user defined function is that it’s programmed in a way that it must return a value. The stored procedure does have some allowance on whether or not to return a value. This depends on whether or not the stored procedure has a value to return.

Another difference seen between the user defined function and the stored procedure regards statements. The user defined function only allows select statements to be read while DML statements are not allowed. On the other hand, stored procedure allows use of both select statements, as well as the DML statements, which can also be updated and manipulated.

The user defined function will only allow input of parameters but does not support output of the same parameters. Stored procedure, on the contrary, supports both input and output parameters. The UDF also does not allow for the use of try-catch blocks. Stored procedure allows for the use of the try catch blocks for exception handling.

The UDF also does not allow for transactions to occur within functions. This functionality is available in the stored procedure which allows for transaction handling. UDF also does not allow for the use of table variables and it also does not allow for temporary tables. Stored procedure, however, allows for the use of table variables as well as a temporary table in it.

When in a function, UDF does not allow for stored tables to be called from it. This is quite different when it comes to stored procedure, which allows for the function to be called without any limitation. When with functions, UDF does not allow the said functions to be called from a select statement. Stored procedure also holds that procedures can’t be called from Where/Select and Having statements. Exec or Execute can, however, be used to call or even execute the stored procedure. Last but not least is that UDF can be used in creating a join clause, exploiting the result set. In stored procedure, this is not possible as no procedures are allowed in a join clause. It is also important to note that stored procedure allows for the return to zero or even n values, whereas UDF can only return to one specific and preset value which is preset.


It is mandatory for Function to return a value while it is not for stored procedure.
Select statements only accepted in UDF while DML statements not required.
Stored procedure accepts any statements as well as DML statements.
UDF only allows inputs and not outputs.
Stored procedure allows for both inputs and outputs.
Catch blocks cannot be used in UDF but can be used in stored procedure.
No transactions allowed in functions in UDF but in stored procedure they are allowed.
Only table variables can be used in UDF and not temporary tables.
Stored procedure allows for both table variables and temporary tables.
UDF does not allow stored procedures to be called from functions while stored procedures allow calling of functions.
UDF is used in join clause while stored procedures cannot be used in join clause.
Stored procedure will always allow for return to zero. UDF, on the contrary, has values that must come back to a predetermined point.

Sharing is caring!

Search DifferenceBetween.net :

Email This Post Email This Post : If you like this article or our site. Please spread the word. Share it with your friends/family.

Leave a Response

Please note: comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

Articles on DifferenceBetween.net are general information, and are not intended to substitute for professional advice. The information is "AS IS", "WITH ALL FAULTS". User assumes all risk of use, damage, or injury. You agree that we have no liability for any damages.

See more about : , , ,
Protected by Copyscape Plagiarism Finder