Array
(
)

Atualizar proprio campo dentro de uma Trigger

Pedih
   - 17 jun 2007

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.

Psergio.p
   - 10 jul 2007

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?