Principais diferenças entre Stored Procedures e Functions

0

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

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com