Stored Procedures e Triggers dentro de um banco de dados são construções semelhantes. Ambos podem executar as mesmas instruções SQL. A maior diferença entre os dois é como eles são executados. Um procedimento armazenado tem de ser executada por um utilizador, enquanto um gatilho é executado pelo sistema como resultado de um evento. Eventos que causam gatilhos para serem ativados incluem inserções de dados, atualizações e exclusões. Uma desvantagem de usar gatilhos em vez de procedimentos armazenados é que eles não podem aceitar parâmetros.
Procedimentos armazenados
Use a instrução abaixo para criar um procedimento armazenado básica sem parâmetros.
CRIAR PROCEDIMENTO mySproc
COMO
INÍCIO-- Instruções SQL
FIM
Criar um procedimento armazenado com parâmetros basta copiar o código abaixo. Para passar um parâmetro com um valor padrão, inclua um sinal e o valor desejado é igual.
CRIAR PROCEDIMENTO mySproc
{@ Varchar Parâm1 (50),
@ Param2 datetime = NULL,
@ Param3 int = 0}
COMO
INÍCIO-- Instruções SQL
FIM
Atualizar ou modificar um procedimento armazenado usando a "Alterar" comando do exemplo abaixo.
ALTER PROCEDURE mySproc
COMO
INÍCIO-- Instruções SQL
FIM
Remover um procedimento armazenado no banco de dados com o "Solta" de comando como mostrado abaixo.
GOTA PROCEDIMENTO mySproc;
Executar o procedimento armazenado no SQL, executando os comandos abaixo. Se você incluir parâmetros, colocá-los na ordem em que é esperado pelo procedimento armazenado. Quaisquer cadeias passaram em deve ser entre aspas simples.
Exemplo sem parâmetros:
EXEC dbo.mySproc
IRExemplo com parâmetros:
EXEC dbo.mySproc `dados de cadeia`, `1/1/1900`, 1;
Gatilhos
Adicionar um gatilho de base basta copiar o código abaixo.
CREATE TRIGGER MyTrigger
ON myTable
APÓS INSERIR
COMO
INÍCIO-- Instruções SQL
FIM
Faça um gatilho que vai correr atrás de vários eventos com os comandos abaixo.
CREATE TRIGGER MyTrigger
ON myTable
APÓS INSERT, UPDATE, DELETE
COMO
INÍCIO-- Instruções SQL
FIM
Modificar o seu disparo utilizando o "Alterar" comando.
ALTER TRIGGER MyTrigger
ON myTable
APÓS INSERIR
COMO
INÍCIO-- Instruções SQL
FIM
Executar as instruções de um gatilho, em vez dos comandos que causam o evento usando o "Ao invés de" comando. Por exemplo, se mySproc atualizou a myTable mesa, que causaria um evento UPDATE. Se você tivesse um gatilho criado para pegar esse evento que incluiu uma "Ao invés de" comando, o código do gatilho seria executado, eo código do procedimento armazenado nunca iria executar.
CREATE TRIGGER MyTrigger
ON myTable
EM VEZ DE ATUALIZAÇÃO
COMO
INÍCIO-- Instruções SQL
FIM
Remova o gatilho do banco de dados com o "Solta" de comando como mostrado abaixo.
DROP TRIGGER MyTrigger;
dicas & avisos
- Se você precisa criar gatilhos que são condicionais, você pode executar um no evento de atualização e use o comando de atualização para determinar se uma coluna específica mudou.
- SE NÃO Update (MyColumn)
- RETORNA