Atualizar proprio campo dentro de uma Trigger
17/06/2007
0
Caros, minha dúvida é a seguinte:
venho do firebird.
e dentro de uma trigger no fb, fazia assim:
trigger <...> before update...
begin
New.MeuCampo = ValorQualquer;
end
no sqlserver, como eu faco isso ?
tipo, preciso atualizar um campo da propria tabela que está vinculada a trigger. Este campo, será retornado por uma funcao.
Exemplo:
a tabela possui Tres campos no exemplo;
DataInicial DateTime,
DataFinal DateTime,
QdeDiasUteis Int
no evento de Insert ou Update,
preciso saber quantos dias uteis tem entre a DataInicial e a DataFinal, vinculada com algums parametros de controle (deve considerar sabado, domingos ou nao).
entao.
exemplo:
DataInicial = 1-6-2007
DataFinal = 10-6-2007
QdeDiasUteis = (Retorna de Uma funcao),
resumo: preciso atualizar um campo dentro de uma trigger, so que este campo esta vinculado a propria tabela que esta sofrendo a acao da trigger.
como eu faco ?
obrigado.
venho do firebird.
e dentro de uma trigger no fb, fazia assim:
trigger <...> before update...
begin
New.MeuCampo = ValorQualquer;
end
no sqlserver, como eu faco isso ?
tipo, preciso atualizar um campo da propria tabela que está vinculada a trigger. Este campo, será retornado por uma funcao.
Exemplo:
a tabela possui Tres campos no exemplo;
DataInicial DateTime,
DataFinal DateTime,
QdeDiasUteis Int
no evento de Insert ou Update,
preciso saber quantos dias uteis tem entre a DataInicial e a DataFinal, vinculada com algums parametros de controle (deve considerar sabado, domingos ou nao).
entao.
exemplo:
DataInicial = 1-6-2007
DataFinal = 10-6-2007
QdeDiasUteis = (Retorna de Uma funcao),
resumo: preciso atualizar um campo dentro de uma trigger, so que este campo esta vinculado a propria tabela que esta sofrendo a acao da trigger.
como eu faco ?
obrigado.
Pedih
Curtir tópico
+ 0
Responder
Posts
10/07/2007
Psergio.p
Você tem que enviar uma instrução UPDATE para a propria tabela, por exemplo, supondo que a trigger afeta a tabela ´tb_clientes´:
CREATE TRIGGER
...
DECLARE @IDCLINTE NUMERIC
SELECT @IDCLIENTE = IDCLIENTE FROM inserted
UPDATE tbl_clientes SET ... WHERE IDCLIENTE = @IDCLIENTE
...
Você entendeu?
CREATE TRIGGER
...
DECLARE @IDCLINTE NUMERIC
SELECT @IDCLIENTE = IDCLIENTE FROM inserted
UPDATE tbl_clientes SET ... WHERE IDCLIENTE = @IDCLIENTE
...
Você entendeu?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)