none
Trigger RRS feed

  • Pergunta

  • Bom dia,

    Para criar um tabela contendo informações de alteração de um determinado registro, criei uma trigger para que no momento que o usuário realize uma alteração ela crie uma cópia inserindo os dados em outra tabela, porém ao inserir na tabela a informação também insere um linha com valores null. Alguém sabe me dizer se minha lógica tem algum erro?

    Resultado após executar a trigger

    ID     DATA                CST_INFORMACAO     ORDEMCOMPRA

    1       04-07-2019      TESTE                        TESTE

    2       04-07-2019       NULL                         NULL

    CREATE TRIGGER [dbo].[HIST_DADOS] ON [dbo].[VENDAS]
    FOR UPDATE 
    AS
    BEGIN

    DECLARE

    @DATA DATETIME,
    @CST_INFORMACAO VARCHAR(500),
    @ORDEMCOMPRA VARCHAR(50),


    SET @DATA = GETDATE()
    SET @CST_INFORMACAO = (SELECT CST_INFORMACAO FROM INSERTED)
    SET @ORDEMCOMPRA = (SELECT ORDEMCOMPRA FROM INSERTED)

    INSERT INTO CST_HIST_VENDA(DATA,CST_INFORMACAO,ORDEMCOMPRA) 
    VALUES (@DATA,@CST_INFORMACAO,@ORDEMCOMPRA)

    END

    GO

    ALTER TABLE [dbo].[VENDA] ENABLE TRIGGER [HIST_DADOS]
    GO

    quinta-feira, 4 de julho de 2019 14:30

Respostas

Todas as Respostas

  • Leandro,

    Aparentemente o Código esta correto, não existe nenhum outro trigger que possa estar vinculado a mesma tabela?

    O trigger é um comando transacional, o mesmo somente é disparado quando uma ação é executada, esta validação que você esta fazendo em relação ao Trigger, esta sendo feita via aplicação ou diretamente no Management Studio.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 4 de julho de 2019 15:20
  • Deleted
    • Marcado como Resposta Leandro HG quinta-feira, 4 de julho de 2019 16:56
    quinta-feira, 4 de julho de 2019 16:15
  • Boa tarde Pedro, obrigado pelo retorno!

    Estou validando via aplicação, porém fiz um teste também com update via MS e o resultado foi o mesmo. Tenho outras triggers criadas para essa tabela que não foram feitas por mim, uma busca uma informação de outra tabela  para completar dados do registro e a outra para calcular período de datas, nenhuma com propósito parecido. 

    quinta-feira, 4 de julho de 2019 16:16
  • Deleted
    quinta-feira, 4 de julho de 2019 16:55
  • Boa tarde José, agradeço pela disposição!

    Montei novamente como você sugeriu e agora sim funcionou perfeitamente. Também agradeço pela indicação do artigo, ótima explicação e bons exemplos.

    Show!

    quinta-feira, 4 de julho de 2019 16:56
  • Deleted
    quinta-feira, 4 de julho de 2019 17:09