SQL SERVER (triggers instead) - Alterar valores no momento da inserção
05/07/2012
0
Parece bem simples, mas está me gerando bastante dor de cabeça.
Desje já grato pela ajuda!
Cleber Azeredo
Posts
05/07/2012
Jair N.
Parece bem simples, mas está me gerando bastante dor de cabeça.
Desje já grato pela ajuda!
05/07/2012
Cleber Azeredo
esta opção foi descartada pois da forma que o sistema legado que estamos trabalhando stá estruturado não corrigiria o problema.
Grato pela ajuda.
05/07/2012
Flavia Santos
Já que o valor default não resolveria o seu problema, a instrução ISNULL não poderia ajudá-lo?
Insert into Tabela (Campo1, Campo2) values (Isnull(@Parametro1,0), Isnull(@Parametro2,0))
05/07/2012
Cleber Azeredo
acredito que se eu explicar melhor a situação ficará mais claro a necessidade da trigger.
Motivos:
1 - As inserções na base de dados não estão centralizadas em uma camada de dados, de forma que é difícil prever onde as mesmas ocorrem.
2 - O sistema deve ser portável em seus fontes pois o mesmo trabalha com (Postgres, Oracle e MSSQL)
3 - Estes campos nos quais quero validar... ganharão restrições not null e valor default, e sabemos que existe dentro dos
fontes inserções com estas colunas nulas.
Como é um software muito antigo, ou seja, difícil correção e validação pelos fontes, e existe a necessidade destas medidas o mais rápido possível, acredito que uma trigger resolva o problema.
A idéia é simples, verificar se determinadas colunas antes da inserção e atualização sejam verificadas se tem valores nulos, se sim atualizá-los para outro valor.
Não sei se ficou claro.
Flávia grato pela ajuda!
05/07/2012
Cleber Azeredo
CREATE OR REPLACE TRIGGER trigger_teste BEFORE INSERT OR UPDATE ON teste FOR EACH ROW DECLARE BEGIN :new.id := (coalesce(:NEW.id, 0)); :new.vlr_sal := (coalesce(:NEW.vlr_sal, 0.00)); END;
vlw
Clique aqui para fazer login e interagir na Comunidade :)