COMO USAR BLOCOS DE INSTRUÇÕES SQL
Conteúdo

Qual a diferença entre trigger, function e procedure?
Resumo das diferenças
Triggers: são disparadas automaticamente quando um evento no banco é executado, pode ser um update, insert ou delete. elas não retornam ou recebem parâmetros e executam ações no banco de dados.
Stored Procedures: precisam ser chamadas para executarem ações no banco de dados. Elas podem receber e retornar vários parâmetros além de fazer ações no banco de dados.
Functions: são chamadas para retornar valores que serão usadas no banco de dados, recebem apenas parâmetros de entrada e não executam ações diretamente.
Funcionalidade
Functions são usadas para retornar valores. Procedures e functions executam ações no banco de dados. Procedures também podem retornar valores.
Declaração
A declaração e a sintaxe de cada um é bem diferente e específica, podendo variar entre cada banco de dados.
Parâmetros
As procedures podem ter parâmetros de entrada e saída. As functions apenas de entrada são aceitas. As functions não recebem parâmetros.
Retorno
Functions servem para retornar valores. Procedures podem retornar um valor ou não. Triggers não retornam valores.
Instruções de transação
As instruções de transação como COMMIT, ROLLBACK e SAVEPOINT não são permitidas em triggers. Procedures aceitam todas elas e em functions elas não são necessárias.
Tratamento de exceções
Triggers e procedures permitem efectuar o tratamento de exceções, via try/catch. O mesmo não é possível em uma função.
Como são chamadas
Triggers são disparadas automaticamente após uma ação. As procedures e functions precisam ser declaradas para executar.
Quando são chamadas
Functions podem ser chamadas dentro de triggers e procedures. Procedures podem chamar elas mesmas ou triggers.
Trigger
Funcionalidade
Dispara uma ação após um insert, update ou delete no banco de dados, ou seja uma edição no banco de dados.
Declaração
É definido um nome a tabela a qual ela se aplica, se acontece antes ou depois da edição no banco de dados e depois a ação que será feita.
Parâmetros
Não são aceitos.
Retorno
Não tem.
Instruções de transação
Não são aceitas.
Como é chamada
As triggers são armazenadas na base de dados e são executados de acordo com outra ação como descrito nas funcionalidades. Não são chamadas sua execução depende de outra ação.
Quando é chamada
É chamado automaticamente sempre que ocorre um evento no banco de dados. Ou seja se estiver declarado para ele ser executada após um update, após uma edição do banco de dados ela irá executar.
Procedure
Funcionalidade
Funciona como uma programação no banco de dados, onde são declaradas as instruções e podem ser chamadas várias vezes.
Declaração
É declarado um cabeçalho e um corpo com o que será executado.
Retorno
Pode retornar ou não um valor.
Instruções de transação
Todas as instruções de transação como COMMIT, ROLLBACK e SAVEPOINT são permitidas.
Como é chamada
Pode ser usando a palavra execute antes do nome da procedure, ou entre as palavras BEGIN e END.
Quando é chamada
São acionadas pela aplicação
Functions
Funcionalidade
São usadas como parte de uma expressão, retornam um valor para ser usado junto com o select, insert, update ou bloco de instrução.
Declaração
É declarado o nome da função seguida dos parâmetros, na sequência o tipo de retorno, depois a expressão que será executada e por último o retorno.
Retorno
Sempre retornam um valor.
Instruções de transação
Não precisam pois não fazem permanência dos dados.
Parâmetros
Podem ser usados para entrada de informação.
Como é chamada
Pode ser inserida em uma variável, diretamente no select, ou como parte de uma procedure ou trigger.
Quando é chamada
É usada como parte de um select ou para retornar uma informação que será usado.
Para saber mais, clique nos links abaixo.
Quais as semelhanças entre functions, triggers e procedures?
Quando devo utilizar uma functiom, trigger ou procedure?
Como fazer uma function?
Como fazer uma procedure?
Como fazer uma trigger?