qual é a sintaxe correta para criar um acionador de banco de dados para inserir, modificar e excluir

Eu tenho o que parece ser um cenário básico para um gatilho de db no servidor SQL e estou correndo em um problema.

eu tenho mesaComercial (id, nome, telefone, etc) e eu tenho tabelasUsuáriosHistória (id, ação user_id, campos, timestamp)

Eu quero um disparador de banco de dados onde a qualquer momento inserções, atualizações ou exclusões em usuários, eu quero um novo registro criado em UsersHistory com o ID de usuário e a ação que foi feito (inserir novos campos atualizados, ID apagado. Basicamente uma tabela de log de auditoria.

isso é o quão longe eu cheguei, mas não consigo descobrir como:

Obter o id em modificar e exclui e tambémComo obter uma lista de campos que foram alterados e a ação que foi confirmada (inserir, excluir, atualizar)
CREATE TRIGGER Update_Users_History 
   ON  Users
   AFTER INSERT,DELETE,UPDATE
 AS 
 BEGIN
-- Insert statements for trigger here

insert into UsersHistory (user_id, [action], [fields], timestamp)
select  max(id) as user_id, {action ??},{fields??}  getdate() from Users)

END
GO

alguma sugestão?

questionAnswers(2)

yourAnswerToTheQuestion