Differences between stored procedures and user-defined functions:
- Stored procedures cannot be used in Select statements.
- Stored procedures support Deferred Name Resolution.
- Stored procedures are generally used for performing business logic.
- Stored procedures can return any datatype.
- Stored procedures can accept greater numbers of input parameter than user defined functions. Stored procedures can have up to 21,000 input parameters.
- Stored procedures can execute Dynamic SQL.
- Stored procedures support error handling.
- Non-deterministic functions can be used in stored procedures.
- User-defined functions can be used in Select statements.
- User-defined functions do not support Deferred Name Resolution.
- User-defined functions are generally used for computations.
- User-defined functions should return a value.
- User-defined functions cannot return Images.
- User-defined functions accept smaller numbers of input parameters than stored procedures. UDFs can have up to 1,023 input parameters.
- Temporary tables cannot be used in user-defined functions.
- User-defined functions cannot execute Dynamic SQL.
- User-defined functions do not support error handling.
RAISEERROR
OR @@ERROR
are not allowed in UDFs.
- Non-deterministic functions cannot be used in UDFs. For example,
GETDATE()
cannot be used in UDFs.