Ajuda com Trigger que soma/subtrai SQL

08/03/2019

0

SQL

Olá grupo,
estou com uma tabela SQL que tem 3 campos :


Quantidade varchar(7),
Quantidade_Fiscal varchar(7),
Quantidade_Total varchar(7),



gostaria de um exemplo de como seria uma Trigger que mostrasse o resultado da soma das colunas: (Quantidade + Quantidade_Fiscal ) na coluna (Quantidade_Total )

Lembrando que os valores de algumas das colunas podem ser nulos, nesse caso o campo (Quantidade_Total ) só exibiria o resultado da coluna com valor
Wictor

Wictor

Responder

Post mais votado

08/03/2019

Olá Wicktor,

o prioblema da triguer é que você precisa saber quando ela será executada (insert, update ou delete) para utilizar as palavras chaves, OLD ou NEW.

Vou assumir que seja no insert por exemplo, e que as colunas não são varchar como você colocou e sim numeric:


CREATE OR ALTER trigger new_teste_bi0 for new_teste
active before insert position 0
AS
begin
  new.quantidade_total = new.quantidade+new.quantidade_fiscal;
end



Caso você realmente tenha colunas de quantidade como varchar, você terá muita dor de cabeça, sugiro que troque responsavelmente o tipo da coluna.

Um forte abraço e fique com Deus.

Hélio Devmedia

Hélio Devmedia
Responder

Mais Posts

08/03/2019

Wictor

Olá Wicktor,

o prioblema da triguer é que você precisa saber quando ela será executada (insert, update ou delete) para utilizar as palavras chaves, OLD ou NEW.

Vou assumir que seja no insert por exemplo, e que as colunas não são varchar como você colocou e sim numeric:


CREATE OR ALTER trigger new_teste_bi0 for new_teste
active before insert position 0
AS
begin
  new.quantidade_total = new.quantidade+new.quantidade_fiscal;
end



Caso você realmente tenha colunas de quantidade como varchar, você terá muita dor de cabeça, sugiro que troque responsavelmente o tipo da coluna.

Um forte abraço e fique com Deus.



Amigo vou alterar a tabela .. mas eu uso o insert ou update ? eu quero que quando se alterar a (quantidade) e/ou a (quantidade_fiscal) a (quantidade_total) atualize automaticamente
Responder

08/03/2019

Alex Lekao

Sugiro colocar o campo quantidade total como campo caculado.

Altere o tipo de campo para ter o valor default como zero, dessa forma vc evitar um calculo com valor nulo.
Responder

08/03/2019

Alex Lekao

Sugiro colocar o campo quantidade total como campo caculado.

Altere o tipo de campo para ter o valor default como zero, dessa forma vc evitar um calculo com valor nulo.


Da uma olhada aqui que deve ter ajudar.

https://docs.microsoft.com/pt-br/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-2017

Especificamente isso.

ALTER TABLE SUA_TABELA ADD QUANTIDADE_TOTAL AS (QUANTIDADE + QUANTIDADE_FISCAL);


Espero ter ajudado.

Atenciosamente,
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar