Stored Procedure Procedimentos armazenados são objetos que são compilados previamente pelo SQL e sempre que forem chamadas serão executadas à partir de seu código “pré-compilado”. Mas a Function função é compilada e executada toda vez que ela é chamada. Vamos ver algumas diferenças entre estas duas formas de tratar dados dentro do nosso banco de dados.
A diferença básica
- Function deve retornar um valor, mas em stored o retorno é opcional.
- As functions podem ter apenas parâmetros de entrada. As storeds podem ter parâmetros de entrada / saída.
- Functions podem ser chamadas de dentro de storeds, já as storeds não podem ser chamados a partir de functions.
Diferenças avançadas
- Procedures não podem ser utilizadas em uma instrução SELECT enquanto que a function pode ser incorporado em uma instrução SELECT.
- Procedures não podem ser chamadas e/ou utilizadas nas instruções de SQL em qualquer lugar do WHERE/HAVING/SELECT, enquanto que a function pode ser.
- A característica mais importante de storeds procedures em relação a functions é a de retenção e reutilização do plano de execução, enquanto no caso da função que irá ser compilada cada vez que for executada.
- Functions que retornam tabelas podem ser tratadas como um outro conjunto dados. Isto quer dizer que podemos utilizá-las em associações (JOINS) com outras tabelas.
- Exceções podem ser tratadas por bloco try-catch em um storeds enquanto bloco try-catch não pode ser usado em uma function.
- Podemos utilizar Transaction Management em um stored, e não em uma function.
Ufa!
Acredito que devam existir outras diferenças que seriam muito bem vindas nos comentários.
Não deixem de visitar a nossa página no Facebook