none
Alterar o valor de um campo no update RRS feed

  • Pergunta

  • Boa tarde,

    Meu problema é o seguinte, quando um usuário alterar um campo int, inserindo nullo, preciso que o valor seja alterado para 0.

    Alguém sabe se tem como fazer isso?

    Obrigado

    terça-feira, 17 de julho de 2012 19:37

Respostas

  • Raniere, 

    Essa pode ser uma opção, utilizar um Trigger para solucionar seu problema, No caso seria uma AFTER TRIGGER. Após a inserção do registro você mudaria para 0.


    /* Se útil por favor classifique a resposta */

    • Marcado como Resposta Raniere Ferreira terça-feira, 17 de julho de 2012 20:28
    terça-feira, 17 de julho de 2012 20:07
  • Valew Luan,

    utilizei sua ideia, ficou mais ou menos assim:

    CREATE TRIGGER trg_update
       ON  Tabela
       AFTER UPDATE
    AS 
    BEGIN
    if((select campo from inserted) is null)
    begin
    update Tabela set campo = 0 where IDTablea = (select IDTablea from inserted);
    end;
    END
    GO

    • Marcado como Resposta Raniere Ferreira terça-feira, 17 de julho de 2012 20:28
    terça-feira, 17 de julho de 2012 20:28

Todas as Respostas

  • Tente o ISNULL().

    update tabela set campo = ISNULL(valor, 0)
    []'s

    Danilo Oliveira www.coffeeandcodes.com.br

    terça-feira, 17 de julho de 2012 19:53
  • Eu colocaria o isnull em uma trigger?

    Não ficaria muito pesado para o banco este update?

    terça-feira, 17 de julho de 2012 20:02
  • Raniere, 

    Essa pode ser uma opção, utilizar um Trigger para solucionar seu problema, No caso seria uma AFTER TRIGGER. Após a inserção do registro você mudaria para 0.


    /* Se útil por favor classifique a resposta */

    • Marcado como Resposta Raniere Ferreira terça-feira, 17 de julho de 2012 20:28
    terça-feira, 17 de julho de 2012 20:07
  • Poderia colocar na própria procedure.

    Pesado? Não, não ficaria.

    []'s


    Danilo Oliveira www.coffeeandcodes.com.br

    terça-feira, 17 de julho de 2012 20:07
  • Valew Luan,

    utilizei sua ideia, ficou mais ou menos assim:

    CREATE TRIGGER trg_update
       ON  Tabela
       AFTER UPDATE
    AS 
    BEGIN
    if((select campo from inserted) is null)
    begin
    update Tabela set campo = 0 where IDTablea = (select IDTablea from inserted);
    end;
    END
    GO

    • Marcado como Resposta Raniere Ferreira terça-feira, 17 de julho de 2012 20:28
    terça-feira, 17 de julho de 2012 20:28
  • Desculpe, mas não to entendendo pra quê criar uma trigger. Não seria mais fácil usar o valor default para o Campo na definição da tabela?

    Eu sei que a questão é de 2012 e estou respondendo em 2014, mas eu não resisti a intervenção.

    Atenciosamente,

    Jeronimo Lira


    • Editado Jeronimo Lira sexta-feira, 17 de janeiro de 2014 17:55 Complemento
    sexta-feira, 17 de janeiro de 2014 17:53