- User-defined functions cannot return multiple result sets. Functions return single value or table.
- Function does not support Error handling. TRY…CATCH, @ERROR or RAISERROR are restricted.
- Functions cannot call a stored procedure, but can call an extended stored procedure.
- We can’t use dynamic SQL or temp tables in functions. Table variables are allowed.
- SET statements are not allowed in a user-defined function. Ex set ROWCOUNT etc.
- User Defined Function can't returns XML Data Type.
- User-defined functions can be nested; that is, one user-defined function can call another.
- Function can be nested up to 32 levels.
- Function accepts only input parameters (unlike stored procedure).