banco de dados
Procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.
Em SQL, para se criar um trigger utiliza-se do CREATE TRIGGER, e para removê-lo deve-se usar DROP TRIGGER
Ex: CREATE TRIGGER Nome_da_trigger ON dono.Nome_da_tabela
FOR INSERT (ou SELECT ou UPDATE ou DELETE)
AS
Código para execução
CREATE TRIGGER nome_da_trigger ON { TABLE | VIEW }
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } }
}
nome_da_trigger: Nome que deseja rotular a TRIGGER;
TABLE | VIEW: Pode-se criar uma TRIGGER apartir de uma Table ou de uma View;
AFTER: Indica que a TRIGGER apenas será acionada após todas as ações terem finalizadas com sucesso. AFTER é padrão caso a instrução FOR for a única palavra-chave especificada na criação da TRIGGER;
INSTEAD OF: Indica que a TRIGGER será executada em vez de ser executada a ação. É possível utilizar a instrução INSTEAD OF com INSERT, UPDATE e/ou DELETE;
Exemplo:
CREATE TRIGGER tg_Cliente_Excluir ON
Cliente
INSTEAD OF DELETE
AS
DELETE FROM Cliente WHERE ClienteID IN (SELECT ClienteID FROM deleted)
DELETE FROM ClienteTelefone WHERE ClienteID IN (SELECT ClienteID FROM deleted)
O exemplo acima irá remover todos os telefone(s) do(s) cliente(s) da tabela ‘ClienteTelefone’ antes de remover todos os clientes (Cliente) e esta TRIGGER está sendo aplicada a tabela ‘Cliente’. Repare que está sendo utilizado a instrução INSTEAD OF que em vez excluir (DELETE) o registro pela ação irá excluir ao final da TRIGGER.
LEFT JOIN
Retorna todas as linhas da tabela a esquerda, mesmo não tendo relacionamento com a da direita.
SELECT coluna
FROM tabela_esquerda
LEFT JOIN tabela_direita
ON tabela_esquerda.coluna = tabela_direita.coluna;
RIGHT JOIN
Retorna todas as linhas da tabela a direita, mesmo não tendo relacionamento com a da esquerda.
SELECT coluna
FROM tabela_direita