Below are the some of the major differences between User Defined Function and Stored Procedure in Sql Server.
To know more on the User-Defined functions with examples please visit the article: User-Defined function.
To know more on the Stored Procedure with examples please visit the article: Stored Procedure.
|Sl. No.||User Defined function||Stored Procedure|
|1||Function must return a value.||Stored procedure may or not return values.|
|2||Will allow only Select statement, it will not allow us to use DML statements.||Can have select statements as well as DML statements such as insert, update, delete
|3||It will allow only input parameters, doesn’t support output parameters.||It can have both input and output parameters.|
|4||It will not allow us to use try-catch blocks.||For exception handling we can use try catch blocks.|
|5||Transactions are not allowed within functions.||Can use transactions within Stored procefures.|
|6||We can use only table variables, it will not allow using temporary tables.||Can use both table variables aswell as temporary table in it.|
|7||Stored procedures can’t be called from function.||Stored Procedures can call functions.|
|8||Functions can be called from select statement.||Procedures can’t be called from Select/Where/Having etc statements. Execute/Exec
statement can be used to call/execute stored procedure.
|9||UDF can be used in join clause as a result set.||Procedures can’t be used in Join clause|
[ALSO READ] You may like to read below other popular articles on differences
Varchar Vs NVarchar
Varchar Vs Varchar(MAX)
Char Vs Varchar
Union Vs Union All
DateTime Vs DateTime2
SET QUOTED_IDENTIFIER ON Vs OFF
Primary Key Vs Unique Key
RAISERROR Vs THROW
Temporary Table Vs Table Variable
LEN() Vs DATALENGTH()
Sequence Vs Identity