CREATE TRIGGER TG_CLIENTES_IDADE
ON [dbo].[CLIENTES]
AFTER INSERT, UPDATE, DELETE
AS BEGIN
UPDATE CLIENTES SET IDADE = DATEDIFF(YEAR, [DATA_NASCIMENTO], GETDATE());
END;
CREATE TRIGGER TG_CLIENTES_IDADE
ON [dbo].[CLIENTES]
AFTER INSERT, UPDATE, DELETE
AS BEGIN
UPDATE CLIENTES SET IDADE = DATEDIFF(YEAR, [DATA_NASCIMENTO], GETDATE());
END;
Oi, Marcia! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.
Gostei da forma como você utilizou o DATEDIFF
para calcular a idade dos clientes. Essa abordagem mostra boa compreensão sobre funções de data no SQL Server.
Uma dica interessante para o futuro é registrar as alterações feitas pela trigger em uma tabela de histórico, para monitorar mudanças nos dados. Veja como pode fazer isso:
CREATE TRIGGER TG_LOG_IDADE
ON [dbo].[CLIENTES]
AFTER UPDATE
AS
BEGIN
INSERT INTO LOG_ALTERACOES (ID_CLIENTE, DATA_ALTERACAO, DESCRICAO)
SELECT i.ID, GETDATE(), 'Idade atualizada automaticamente pela trigger'
FROM inserted i;
END;
Esse código cria um log simples registrando o momento em que a idade foi atualizada, o que ajuda em auditorias e controle de alterações.
Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!